Я хочу построить монитор / диспетчер задач с помощью Win32 API. Он будет запущен (предпочтительно как служба Windows) с аргументом командной строки, указывающим, сколько экземпляров нового процесса он должен запустить.
task_man.exe 40
Запустит 40 экземпляров процесса
task.exe
Теперь, когда выходит файл task.exe (правильно или нет), мне придется запустить новый, чтобы заменить его.
Моя грубая идея такова:
Запустите задачи из task_man, получите их PID, а затем создайте цикл, который проверяет, все ли PID являются активными процессами. Для каждого неверного PID запустите новый процесс и замените старый PID новым.
Есть ли лучший дизайн, который я могу использовать, или лучший рабочий процесс? Есть ли стандартный метод для этого? Я не хочу изобретать велосипед ... Кроме того, какие API я должен рассмотреть?
Я также ищу дизайн, который потом можно легко изменить - то есть, если я запущу
task_man.exe 30
после этого новый task_man не должен запускаться, а должен изменить количество задач в предыдущем экземпляре. (Я знаю, что он начнет работать, то, что я говорю, должно изменить оригинал и затем выйти)
Я не ищу код (поскольку я не ищу полную реализацию, не то, чтобы я возражал против просмотра примеров), скорее, какие API я могу использовать, или предложения об общем дизайне, который я придумал.