Межплатформенный демон / остановка и запуск службы

есть ли инструмент, который может контролировать демонов/сервисов в кроссплатформенной манере?

в программировании существуют различные инструменты сборки, которые позволяют создавать программное обеспечение из исходных кодов на разных платформах; инструмент будет заботиться об обнаружении возможностей конкретной машины и находить библиотеки, компиляторы и т. д. CMake является примером.

аналогичная проблема с управлением демоном. В зависимости от ОС, если я хочу запустить демон, я мог бы используйте

stop-start-daemon -S mydaemon

или, может быть, вызвать скрипт как

/etc/init.d/mydaemon start

или systemctl является инструментом выбора, то

systemctl start mydaemon

и если я на Windows, то я мог бы использовать net start myservice или sc start myservice.

есть ли инструмент, скрипт или другой канонический метод для обработки этого сценария? Мне не нужен точный контроль; просто остановитесь и начните, но я хотел бы иметь возможность развертывать свое собственное программное обеспечение на нескольких системах, используя один и тот же сценарий.

7
задан Anthony
13.02.2023 10:23 Количество просмотров материала 3420
Распечатать страницу

2 ответа

чтобы непосредственно ответить на ваш вопрос: нет, нет кроссплатформенного способа запуска/остановки / управления демонами.

косвенно ответить на ваш вопрос: типичный способ это обрабатывается путем выпечки такого рода функциональность в вашей программе и установщиков (makefiles/build files/msi пакеты/молнии все, что).

Если у меня есть демонизированная программа, которую я создаю (программа, которая предназначена для запуска в фоновом режиме или в качестве службы), я создаю сценарии " start/stop вручную (с некоторой полезной копией / вставкой), а затем заархивируйте исходный или предварительно скомпилированный двоичный файл с помощью скрипта управления платформой выбора, который затем вызывается одинаково на каждой платформе (т. е. myservice -start или myservice -stop, etc. п.).

3
отвечен txtechhelp 2023-02-14 18:11

Нуждающся это СЕБЯ Для моих собственных программных продуктов, я решил написать его:

https://github.com/cubiclesoft/service-manager/

Это не совсем безупречным решением из-за каждой платформы требуется собственный скомпилированные двоичные файлы. Однако интерфейс намного более последователен, чем то, что мы имеем в данный момент. Service Manager, вероятно, лучше всего использовать в качестве кросс-платформенной службы развертывание инструмент, который отвечает вашим последним потребностям в развертывании ваше собственное программное обеспечение, а не общий инструмент запуска / остановки. То есть вы пишете код, который хотите превратить в системную службу и сделать его простым и надежным для развертывания на других машинах независимо от ОС.

тем не менее, он также может быть использован для запуска/остановки других служб, включенных Service Manager. Таким образом, если все службы, которые вы хотите контролировать, запущены в Диспетчере служб, можно использовать одно средство для запуска и остановки этих служб.

0
отвечен CubicleSoft 2023-02-14 20:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх