Лабораторная 2
Автоматический перезапуск сервисов

Современные системы инициализации операционных систем, контролирующие функционирование системных сервисов, поддерживают возможность их автоматического перезапуска в случае незапланированной остановки. Таким образом достигается общая стабильность работы системы, даже при недостаточной стабильности отдельных ее частей.

Задача заключается в эмуляции работы такой системы инициализации. Требуется разработать программы mysystemd и myprocess.

mysystemd запускается с параметрами: min, max, mintime, maxtime. Программа при старте запускает min экземпляров myprocess средствами fork-exec, информирует пользователя об ID запущенных процессов и контролирует их завершение. По факту завершения любого из запущенных процессов mysystemd сообщает об ID и продолжительности работы завершенного процесса, а затем запускает новый процесс аналогичным образом. Когда количество стартов достигнет значения max, запуск новых процессов прекращается. mysystemd завершает работу по после завершения работы всех запущенных процессов.

myprocess запускается с параметрами: mintime, maxtime, функционирует от mintime до maxtime секунд (определяется случайным образом), выводит информацию о своем старте и завершении совместно с идентификатором процесса и реальным временем работы.