A resposta aceita está correta, mas não especifica como executar um encerramento "seguro" do rtorrent
serviço com um systemctl
script de serviço.
A maioria das respostas ou scripts existentes "mata" a sessão da tela ou o rtorrent
próprio processo. Ao fazer isso, eles enviam um sinal SIGINT (2)
ou SIGQUIT (3)
que interrompe / mata o rtorrent
processo. A desvantagem é que normalmente o arquivo de bloqueio de rtorrent
não é excluído porque rtorrent
não foi desligado corretamente. Conseqüentemente, o próximo início de rtorrent
falha por causa do arquivo de bloqueio persistente.
Olhando o código fonte dosrtorrent
programas que ele espera a SIGTERM (15)
. Portanto, considerando um systemctl
script de serviço, o comando stop pode se parecer com:
ExecStop=/usr/bin/kill -s 15 \`pidof rtorrent`
Se pidof
não estiver disponível, você também pode usar algo como:
ps -A | grep "rtorrent" | awk '{print $1}'
ps
listar os processos atuais
grep
extrai os detalhes do processo rtorrent
awk
seleciona o pid e o exibe em stdout
Caso precise aguardar a conclusão do desligamento, você pode usá-lo killall -w
. Observe que:
killall
pode esperar para sempre se o sinal foi ignorado, não teve efeito ou se o processo permanecer no estado de zumbi (fonte man killall
:).
sudo service start rtorrent
?