Acabo de actualizar desde el servidor Ubuntu 14 a la versión 15. Tuve problemas para que mi script de arranque funcionara después de la actualización, y leí que systemd es el nuevo valor predeterminado. Estoy lejos de ser un experto en Linux, así que por favor, sé fácil conmigo :-)
Aquí está lo que era mi script inicial:
description "NZBGet upstart script"
setuid robert
setgid robert
start on runlevel [2345]
stop on runlevel [016]
respawn
expect fork
script
exec nzbget -D
end script
pre-stop script
exec nzbget -Q
end script
Basado en el inicio de la página wiki de systemd , utilicé las tablas proporcionadas allí para mapear las cosas lo más cerca que pude en mi nuevo archivo de servicio systemd:
[Unit]
Description=NZBGet Service
[Service]
Type=forking
ExecStart=/usr/local/bin/nzbget -D
ExecStop=/usr/local/bin/nzbget -Q
Restart=on-failure
Este archivo está ubicado en /home/robert/.config/systemd/user/nzbget.service
. Para iniciar el servicio manualmente, he estado haciendo:
$ systemctl --user start nzbget
Esto funciona muy bien. Sin embargo, cuando salgo de mi sesión SSH, el servicio se cierra. Además, no se inicia en el arranque ni en el inicio de sesión del usuario. Quiero que se comporte de la misma manera que un servicio de arranque: quiero que se inicie en el arranque, se ejecute constantemente y como un usuario específico.
¿Qué debo hacer para obtener esta configuración?
systemctl enable
embargo, tuve que especificar la ruta absoluta al nombre de archivo del servicio en el comando, esto no era obvio para mí al principio. También habilitar me dio alguna advertencia sobre una[Install]
sección que falta . Lo ignoré, pero no estoy seguro de si afectará su capacidad para comenzar en el momento del arranque.