Посмотрите на команду killall
. start
внутри скрипта часто просто смотрит, существует ли экземпляр программы, и если он не запускает его. Остановка часто просто отправляет сигнал службе, используя команду killall
.
Подобные вещи, которые могут вас заинтересовать, - это редактирование или замена файлов конфигурации для демона, а затем отправка демону сигнала SIGHUP, сообщающего ему, что он должен перечитать свою конфигурацию.
Еще одна связанная с этим тема - отправка демону конкретного сообщения путем вызова исполняемого файла демона с некоторыми конкретными параметрами. Это делается таким образом, потому что интерфейс, в который отправляются сообщения, может измениться, и, если это та же самая программа, которая отправляет и получает, трудно выйти из синхронизации. Способ отправки сообщений также может быть разным (Unix Domain Sockets, именованный канал, редактирование файла конфигурации и отправка SIGHUP, практически все, что вы можете себе представить). Еще одним преимуществом этого является то, что ту же проверку ввода, которую использует программа при запуске в качестве демона, можно использовать перед отправкой сообщения, поэтому в случае ошибки демон может задушить экземпляр программы, которой вы являетесь. вызов из командной строки может пойти дальше и сообщить вам на терминале и отказать в передаче этого демону.
Чтобы найти PID работающей службы, либо используйте файл pid (демон создает файл в определенном месте с его PID в нем - точно так же, как старые файлы блокировки, или делайте это так же, как killall
- - просмотреть /proc
(это зависит от платформы).