我的命令在 bash 中运行,但不是来自 /etc/init,我做错了什么?

我的命令在 bash 中运行,但不是来自 /etc/init,我做错了什么?

我对这个初始化脚本有些疑问。

当我运行从命令行传递给 start-stop-daemon 的命令时,它运行完美,即使我以脚本中的用户 ID 身份运行它,但由于某种原因,命令:

sudo service start deluged

打印如下:

deluged start/stopping  

但我看不到任何使用tophtop或的大量进程ps aux,而且我无法通过它应该监听的端口(或任何其他端口)连接到它。

我不知道下一步该怎么做。在将任何内容写入日志文件之前,运行 init 脚本失败了,所以我不知道出了什么问题。

我 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

deluge 文档中有一些与您的类似的东西,但我认为这是 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可以在那里写入)。如果仍然不起作用,那么 upstart 日志文件可能会帮助您。您的日志文件是/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

相关内容