
Tengo un servidor instalado que siempre necesito ejecutar en la terminal. El comando parece
software server
Ahora quiero que esto se ejecute en segundo plano sin necesidad de mantener la ventana abierta. Pensé en crear un servicio. Mi software.service se parece
[Unit]
Description=Software Server
[Service]
Type=simple
ExecStart=/opt/software/bin/software server
Sin embargo. En todos los servicios y guías es necesario definir un ExecStop. ¿Cómo hago esto sin que el servidor realmente lo admita? ¿Puedo simplemente detener el proceso al detenerlo?
Alguna sugerencia de cómo puedo solucionar mi problema (no tiene que ser un servicio)
Respuesta1
https://www.freedesktop.org/software/systemd/man/systemd.service.html
Un poco relevante, el énfasis es mío:
Parada ejecutiva=
Comandos a ejecutar para detener el servicio iniciado mediante ExecStart=. Este argumento requiere varias líneas de comando y sigue el mismo esquema descrito anteriormente para ExecStart=.El uso de esta configuración es opcional. Después de ejecutar los comandos configurados en esta opción, se da a entender que el servicio se detiene y cualquier proceso restante finaliza de acuerdo con la configuración KillMode= (consulte systemd.kill(5)). Si no se especifica esta opción, el proceso finaliza enviando la señal especificada en KillSignal= o RestartKillSignal= cuando se solicita la parada del servicio.Se admite la sustitución de variables de entorno y especificadores (incluido $MAINPID, ver arriba).
Tenga en cuenta que normalmente no es suficiente especificar un comando para esta configuración que solo solicite que el servicio finalice (por ejemplo, enviándole algún tipo de señal de terminación), pero que no espere a que lo haga. Dado que los procesos restantes de los servicios se eliminan de acuerdo con KillMode= y KillSignal= o RestartKillSignal= como se describe arriba inmediatamente después de salir del comando, es posible que esto no resulte en una parada limpia. Por lo tanto, el comando especificado debe ser una operación síncrona, no asíncrona.
Yhttps://www.freedesktop.org/software/systemd/man/systemd.kill.html#Cuéntanos:
El valor predeterminado es SIGTERM.
Entonces: si no especifica ExecStop y ejecuta systemctl stop software_server
SystemD, hará el equivalente a kill -15
.