La respuesta aceptada es correcta, pero no especifica cómo realizar un apagado "seguro" del rtorrent
servicio con un systemctl
script de servicio.
La mayoría de las respuestas o scripts existentes "matan" la sesión en pantalla o el rtorrent
proceso en sí. Al hacerlo, envían una señal SIGINT (2)
o SIGQUIT (3)
que detiene / mata el rtorrent
proceso. El inconveniente es que normalmente el archivo de bloqueo de rtorrent
no se elimina porque rtorrent
no se cerró correctamente. En consecuencia, el próximo inicio de rtorrent
fallará debido al archivo de bloqueo persistente.
Echando un vistazo al código fuente dertorrent
muestra que espera a SIGTERM (15)
. Por lo tanto, considerando un systemctl
script de servicio, el comando de detención podría verse así:
ExecStop=/usr/bin/kill -s 15 \`pidof rtorrent`
Si pidof
no está disponible, también puede usar algo como:
ps -A | grep "rtorrent" | awk '{print $1}'
ps
enumerar los procesos actuales
grep
extrae los detalles del proceso actual
awk
selecciona el pid y lo muestra en stdout
En caso de que necesite esperar hasta que se complete el apagado, puede usarlo killall -w
. Tenga en cuenta que:
killall
puede esperar para siempre si la señal se ignoró, no tuvo efecto o si el proceso permanece en estado zombie (fuente:) man killall
.
sudo service start rtorrent
?