Quiero que el servicio systemd maneje la bifurcación (mi archivo no maneja la bifurcación por sí misma. Por lo tanto, confío en systemd para manejar eso)
Mi archivo de servicio:
[Unit]
Description=swamp services management service
After=syslog.target
[Service]
Type=forking
ExecStart=/usr/bin/swamp
[Install]
WantedBy=multi-user.target
Pregunta
¿Especificar lo Type=forking
suficiente para lo que estoy tratando de lograr? ¿O es similar a esperar una bifurcación en el arranque que en realidad le dice al arranque (si entiendo correctamente, no estoy seguro de hacerlo, soy nuevo en la escritura de guiones iniciales) que mi servicio manejaría la bifurcación / demonización.
oneshot
(un script de ejecución corta típico) osimple
(un servicio de larga duración que no se bifurca + sale).&
?Si desea que systemd maneje la bifurcación, entonces debe usar eg
Type=simple
oType=notify
. Entonces systemd hará la bifurcación por usted.Si puede modificar el
swamp
ejecutable, entoncesType=notify
es la mejor solución. El ejecutable debe notificar a systemd cuando se inicializa correctamente. Esto significa quesystemctl start swamp
esperará a que el pantano se inicialice cuando se llame desde la línea de comando e imprima cualquier mensaje de error mientras se inicializa en la línea de comando, que es lo que generalmente desea.Para ver un ejemplo de un ejecutable escrito para usar Type = notify, consulte el siguiente shellscript:
fuente