Принятый ответ является правильным, но не указывает, как выполнить «безопасное» отключение rtorrentслужбы с помощьюsystemctl служебного сценария.
Большинство существующих ответов или сценариев «убивают» либо сеанс экрана, либо сам rtorrentпроцесс. При этом они посылают SIGINT (2)или SIGQUIT (3)сигнал, который останавливает / убивает rtorrentпроцесс. Недостатком является то, что обычно файл блокировки rtorrentне удаляется, потому что rtorrentон не был закрыт должным образом. Следовательно, следующий стартrtorrent не будет выполнен из-за постоянной блокировки файла.
Взглянув на исходный кодrtorrent показывает, что он ожидает SIGTERM (15). Следовательно, с учетом systemctlслужебного скрипта команда stop может выглядеть так:
ExecStop=/usr/bin/kill -s 15 \`pidof rtorrent`
Если pidofнет в наличии, вы также можете использовать что-то вроде:
ps -A | grep "rtorrent" | awk '{print $1}'
ps список текущих процессов
grep извлекает подробные сведения о процессе
awk выбирает pid и выводит его на стандартный вывод
В случае, если вам нужно дождаться завершения выключения, вы можете использовать killall -w. Обратите внимание, что:
killallможет ждать вечно, если сигнал был проигнорирован, не имел никакого эффекта, или если процесс остается в состоянии зомби (source:) man killall.
sudo service start rtorrent?