Я работаю над маленьким инструментом вроде NGINX, который я хочу запускать в фоновом режиме в качестве службы. Я хотел бы предложить пользователю несколько команд, например:
start
: запускает инструмент и запускает его в фоновом режиме. stop
: останавливает службу.
Как я могу управлять действием остановки? Я подумал о двух возможных решениях:
- Запустить как процесс в фоновом режиме, и когда пользователь запускает команду
stop
, он убивает процесс с его идентификатором. - Запускать как процесс в фоновом режиме на указанный порт c. Когда пользователь запускает команду
stop
, он отправляет сообщение на этот порт с сигналом для остановки службы.
Какой из них будет более надежным и почему? Есть ли другой способ лучше? Я ищу кроссплатформенное решение .
Я думаю, что наиболее удобное решение - второе, так как порт прослушивания более кроссплатформенный, чем демон, который является только допустимой концепцией в Linux или услугу в Windows. Кроме того, вы можете расширить функциональность службы, отправляющей команды на сервер прослушивания, чтобы получить его информацию, статистику или перезагрузить настройки инструмента.
Любая помощь будет очень признательна