La respuesta aceptada es correcta, pero no especifica cómo realizar un apagado "seguro" del rtorrentservicio con un systemctlscript de servicio.
La mayoría de las respuestas o scripts existentes "matan" la sesión en pantalla o el rtorrentproceso en sí. Al hacerlo, envían una señal SIGINT (2)o SIGQUIT (3)que detiene / mata el rtorrentproceso. El inconveniente es que normalmente el archivo de bloqueo de rtorrentno se elimina porque rtorrentno se cerró correctamente. En consecuencia, el próximo inicio de rtorrentfallará 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 systemctlscript de servicio, el comando de detención podría verse así:
ExecStop=/usr/bin/kill -s 15 \`pidof rtorrent`
Si pidofno 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:
killallpuede 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?