upstart启动python脚本但它的行为意外

时间:2015-06-16 06:18:24

标签: python ubuntu upstart

该程序在cron或shell启动时有效。但是当由upstart启动时,它似乎无限循环。

他们使用的脚本和文件位于/home/user/目录中,由user拥有,并且都具有777权限。

upstart .conf文件:

start on runlevel [2345]
stop on runlevel [!2345]

kill signal SIGHUP
# reload signal SIGHUP
respawn

exec python /home/user/Documents/init.py -b 600

1 个答案:

答案 0 :(得分:0)

默认情况下,

upstart以root身份执行命令。但是可以指定用户:https://askubuntu.com/questions/87671/how-do-i-start-jobs-as-a-non-privileged-user-in-upstart

但脚本编程时使用user个特定变量和对特定目录的依赖。

init.py有这一行:

self.d_root = os.path.join(os.path.expanduser('~'),'Documents','records')

我将其更改为此并且有效:

self.d_root = os.path.dirname(os.path.realpath(__file__))

但我认为正确的解决方法是将此行添加到.conf文件中:

setuid username