upstart 启动了 python 脚本,但其行为却出乎意料

upstart 启动了 python 脚本,但其行为却出乎意料

程序在通过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

相关内容