ubuntu upstart脚本执行script.py程序

ubuntu upstart脚本执行script.py程序

我正在创建一个 upstart 脚本来执行我编写的 python 程序。当服务启动时,我想回显starting service - script.py...并在启动后回显程序的进程 ID。

stopping service - script.py...同样,当它停止时我想回应。

我到目前为止有这个(记住我对此还很陌生)...

#Name: script.conf
description "An upstart config to run ~/applications/systems/script.py as an OS service."
author "Corey F. - 12/2011"

pre-start script
    echo 'starting service - script.py...'
end script

post-stop script
    echo 'stopped service - script.py...'
end script

start on runlevel [2534]
stop on runlevel [!2534]

exec /home/lv_admin/applications/systems/script.py
respawn

我想我需要命令2534 status来获取服务的进程 ID 和最后已知状态(如此处所述:http://upstart.ubuntu.com/getting-started.html)但我不知道把它放在哪里......

另外,在执行此 script.conf upstart 文件期间,如何将 upstart 事件问题记录到特定文件中?我需要知道 upstart 启动该过程时是否存在问题。

答案1

好吧,这是一个有点老的问题,但为了完整性,让我们来回答它:-)

假设您将此作业保存在 中/etc/init/myapp.conf,则作业名称为myapp。询问作业状态(和进程 ID)将很简单:(status myapp以 root 身份)或sudo status myapp在典型的 Ubuntu 用户情况下。

dmesg默认情况下,初始化错误会转到,因此执行此操作dmesg | grep "init:"会为您提供日志。可以通过启用更详细的日志记录sudo initctl log-priority info。比这更详细的调试级别会发送垃圾邮件并让您感到困惑 :-)

执行sudo stop myappsudo start myapp成功后会立即得到反馈,以及进程 ID。如果出现init: unknown job或 等信息,则表示 Upstart 解析配置文件失败,具体行数和原因可从 dmesg 中找到。

相关内容