Моя команда запускается в bash, но не из /etc/init, что я сделал не так?

У меня возникли проблемы с этим сценарием инициализации.

Когда я запускаю команду, которую я передаю start-stop-daemon из командной строки, она работает отлично, даже если я запускаю sudoed в качестве идентификатора пользователя в сценарии, но по какой-то причине команда:

sudo service start deluged

печатает это:

deluged start/stopping  

но я не вижу каких-либо затопленных процессов, использующих top, htop или же ps auxи я не могу подключиться к нему через порт, который он должен прослушивать (или любой другой порт).

У меня нет идей, что попробовать дальше. Запуск сценария инициализации завершается ошибкой, прежде чем что-либо записывается в файл журнала, поэтому я понятия не имею, что происходит не так.

Я на 100% убежден, что пользователь и группа существуют и не опечатаны, но, возможно, они каким-то образом неправильно настроены, поскольку я сделал их вручную и, возможно, что-то пропустил. Я также уверен, что у пользователя есть разрешение на доступ ко всем соответствующим файлам для программы.

Вот сценарий, я понятия не имею, что я сделал не так (и я все равно взял большую часть из затопленной документации!)

#deluged - Deluge daemon                                                                                                                         
#                                                                                                                                                 

# The daemon component of Deluge BitTorrent client. Deluge UI clients                                                                             
# connect to this daemon via DelugeRPC protocol.                                                                                                  



description "Deluge daemon"                                                                                                                       
author "Deluge Team"                                                                                                                              

start on filesystem and static-network-up                                                                                                         
stop on runlevel [016]                                                                                                                            

respawn                                                                                                                                           
respawn limit 5 30                                                                                                                                

env uid=debian-deluged                                                                                                                            
env gid=debian-deluged                                                                                                                            
env umask=007                                                                                                                                     

exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/python /usr/bin/deluged -L info -l /var/log/deluged/server.log -c /var/opt/deluged/config -p 8112 -- -d  

1 ответ

Решение

В документации по потопам есть что-то похожее на ваше, но я думаю, что это похмелье от очень старых версий Upstart. Я бы попробовал упростить это до следующего:

description "Deluge daemon"
author "Deluge Team"

start on filesystem and static-network-up
stop on runlevel [016]

respawn
respawn limit 5 30

setuid debian-deluged
setgid debian-deluged
umask 007

exec /usr/bin/python /usr/bin/deluged -L info -l /var/log/deluged/server.log -c /var/opt/deluged/config -p 8112 -- -d

И затем, если это все еще не работает, проверьте разрешения на /var/log/deluged/ а также /var/log/deluged/server.log (что debian-deluged пользователь может написать там). Если это все еще не работает тогда, файлы журнала выскочки могут помочь Вам. Твой будет /var/log/upstart/deluged.log, Если это ничего не показывает, мы могли бы просто попробовать запустить команду как правильный пользователь:

sudo -u debian-deluged -g debian-deluged /usr/bin/python /usr/bin/deluged -L info -l /var/log/deluged/server.log -c /var/opt/deluged/config -p 8112 -- -d
Другие вопросы по тегам