Кросс-платформенная схема для остановки фоновых служб - PullRequest
1 голос
/ 08 июля 2020

Я работаю над маленьким инструментом вроде NGINX, который я хочу запускать в фоновом режиме в качестве службы. Я хотел бы предложить пользователю несколько команд, например:

  • start: запускает инструмент и запускает его в фоновом режиме.
  • stop: останавливает службу.

Как я могу управлять действием остановки? Я подумал о двух возможных решениях:

  1. Запустить как процесс в фоновом режиме, и когда пользователь запускает команду stop, он убивает процесс с его идентификатором.
  2. Запускать как процесс в фоновом режиме на указанный порт c. Когда пользователь запускает команду stop, он отправляет сообщение на этот порт с сигналом для остановки службы.

Какой из них будет более надежным и почему? Есть ли другой способ лучше? Я ищу кроссплатформенное решение .

Я думаю, что наиболее удобное решение - второе, так как порт прослушивания более кроссплатформенный, чем демон, который является только допустимой концепцией в Linux или услугу в Windows. Кроме того, вы можете расширить функциональность службы, отправляющей команды на сервер прослушивания, чтобы получить его информацию, статистику или перезагрузить настройки инструмента.

Любая помощь будет очень признательна

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...