该程序在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
答案 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