LINUX.ORG.RU

[туплю]rtorrent

 


0

0

Необходимо перед отключением(перезагрузкой) системы отключать rtorrent, а то он при обычном ребуте хэш проверяет.

Для этого запихнул в /etc/rc0.d/K15rtorrent

#! /bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:    
# Default-Start:    0 6
# Default-Stop:      
# Short-Description:
# Description: 
### END INIT INFO

case "$1" in
  start|"")
killall -s 2 rtorrent
        ;;
  stop)
killall -s 2 rtorrent
        ;;
  *)
        echo "Usage: rtorrent [start|stop]" >&2
        exit 3
        ;;
esac

Но скрипт не работает, при команде shutdown -h now, rtorrent убивается не по INT.

Где ошибка? (кроме ДНК)
anonymous

Надо ждать в цикле пока rtorrent не завершится. А то killall посылает сигнал и сразу же забывает об этом (не дожидается, пока rtorrent завершится). Поэтому потом другой скрипт его прибивает другим сигналом.

AEP ★★★★★
()

А как это гребанный торент по ИНТ убивать при выполнении шатдауна?

anonymous
()
Ответ на: комментарий от CFA

И причем тут сесси, все равно если прибить рторрент по KILL он будет проверять хэш открытых до того недокаченных файлов.

anonymous
()

Добавьте перед "killall -s 2 rtorrent" строку "echo Stoping rtorrent" и посмотрите, выводится ли это сообщение,
похоже ваш скрипт не вызывается при ребуте системы.
Я не знаю какой у вас дистрибутив, но, например, RedHat запустит "/etc/rc0.d/K15rtorrent stop" только при наличии файла 
/var/lock/subsys/rtorrent, который должен создаваться в стартовом скрипте "/etc/rc3.d/S85rtorrent start".

Ну и можно сделать цикл, наподобие:

for i in 1 2 3 4 5 ; do
  killall -s 2 rtorrent 2>/dev/null || break
  sleep 3
done

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.