Pregunta:
Estoy desarrollando una aplicación Nodejs con la que el usuario interactúa a través de HTTP en localhost. Prácticamente no hay parámetros y el demonio prácticamente no tiene dependencias y solo necesita estar activo antes de iniciar sesión.
Me gustaría seguir los modismos en cada plataforma para los scripts de inicio, y eso significa Upstart en Ubuntu y systemd en Fedora.
- ¿Hay buenos tutoriales para escribir archivos de sistema systemd?
- ¿Existen 'mejores prácticas' que conviene tener en cuenta?
He encontrado estos recursos:
- Página wiki de Fedora sobre systemd
- Blog sobre cómo escribir archivos de sistema systemd
- Systemd en Wikipedia
Principalmente busco una especie de API como referencia, así como un formato básico a seguir.
Respuesta:
El siguiente ejemplo está inspirado en este enlace, que en realidad no menciona todos los pasos y se enumera solo para acreditar la fuente: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files.html
Paso 1 : Creé este archivo (tenga en cuenta la ubicación) que esencialmente activa un proceso bash con un argumento extendido. Puede disparar su propio comando, que podría ser diferente de bash.
[root@y500-fedora ~]# cat /etc/systemd/system/foo.service
[Unit]
Description=foo
[Service]
ExecStart=/bin/bash -c "while true; do /bin/inotifywait -qq --event close_write /sys/class/backlight/acpi_video0/brightness; su myusername -c '/bin/xbacklight -display :0 -set $(cat /sys/class/backlight/acpi_video0/brightness)'; done"
[Install]
WantedBy=multi-user.target
Paso 2 :
Recargar systemd
:
systemctl daemon-reload
Inicie el nuevo servicio:
systemctl enable foo
(de manera similar, puede disable
)
(opcional) Paso 3 : Debería iniciarse automáticamente en el próximo reinicio en modo multiusuario (nivel de ejecución 3), pero si desea iniciarlo de inmediato:
systemctl start foo
systemctl status foo # optional, just to verify
Actualización: para completar, debo agregar que ubuntu bionic parece tener una página de manual muy completa. RTFM aquí