程序在通过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
upstart
默认以 root 身份执行命令。但可以指定用户:如何在 Upstart 中以非特权用户身份启动作业?。
但是该脚本是使用用户特定变量和对特定目录的依赖性进行编程的。
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 = user