Как я могу создать файл pid для программы C, которая будет использоваться в monit, и как мне контролировать эту программу C с помощью monit?
Я считаю, что Monit по-прежнему является полезным инструментом. Есть не так много надежных альтернатив.
Что касается программы C, вам действительно стоит изучить демонизация процесса. Это правильный метод. Monit может отслеживать шаблоны имен процессов вместо файлов PID. В крайнем случае, у вас может быть настройка Monit, которая выглядит следующим образом, при условии, что имя программы - "c_program" и что существует единственный ее экземпляр:
check process c_program
matching "c_program"
start program = "/path/to/c_program"
stop program = "killall c_program"
Альтернативное решение: не используйте monit. Правильное написание демонов - это жесткий, и по моему опыту намного проще просто использовать систему управления процессами, которая выполняет демонизацию за вас (мне нравится DAEMON Tools - это не единственный вариант, но я перепробовал их все и продолжаю возвращаться к daemontools). У такого подхода много преимуществ: