Ubuntu 11.10 上的 Python 脚本即服务

Ubuntu 11.10 上的 Python 脚本即服务

我面临以下问题。我想在 Ubuntu 11.10 系统上将 Python 脚本作为服务运行(以下链接中已提到: 在 Ubuntu 上使用 Upstart 的 Python 服务)我按照上面提到的链接中提到的步骤进行操作,但是在系统日志中收到以下错误消息:

init: script main process (21826) terminated with status 1
Jun 8 16:59:55 bilbo kernel: [263012.984531] init: script main process ended, respawning
Jun 8 16:59:55 bilbo kernel: [263013.044099] init: script main process (21827) terminated with status 1

以上两行一直在重复。

说完sudo start script,我得到了以下信息:

$ sudo start script
script start/running, process 21826

script.conf以下是我放置的内容/etc/init

description "Used to start python script as a service"
author "bilbo"
start on runlevel [2]
stop on runlevel [06]
exec python /home/bilbo/scripts/webserver.py
respawn

请告诉我我做错了什么?我是否也必须更改我的 Python 代码?

答案1

webserver.py以非零值退出。默认情况下,Upstart 将此视为错误,因此尝试重新启动服务。

至于为什么webserver.py退出 - 我的猜测是它假设了一个特定的环境。当 Upstart 生成一个进程时,它会清除环境,就像cron和一样at,然后设置很少的变量,即:

set要查看整个作业环境,请添加如下所示的调用:

如果你的 Python 服务需要其他变量,你可以使用“ env”(Upstart 节,不是shell 命令)。 请参阅:

相关内容