Ubuntu - 使用 Python 脚本启动和结束自己的进程的 Upstart

Ubuntu - 使用 Python 脚本启动和结束自己的进程的 Upstart

我正在尝试使用 Upstart 设置一个 Python 脚本,该脚本启动几个内部进程,并在需要时使用以下句子终止它们:

$ listener.py -startall
$ listener.py -killall

我的 Upstart 文件:

# Listener Service

description     "Listener Server"

start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]

exec /home/www-data/listener/bin/listener.py -startall

pre-stop        exec /home/www-data/listener/bin/listener.py -killall

如果我尝试停止,我想知道如何使用 python 脚本命令来完成服务:

$ sudo service listener stop
$ stop: Unknown instance:

它失败了,我的 upstart 文件只能启动服务,但当我尝试停止它时却不起作用。我遗漏了什么?

答案1

好吧,以 plymouth.conf 为例,我在 upstart 脚本中添加了一句话,将服务标记为一个可以 fork 更多进程的进程:expect fork

# Listener Service

description     "Listener Server"

start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]

expect fork

exec /home/www-data/listener/bin/listener.py -startall

pre-stop        exec /home/www-data/listener/bin/listener.py -killall

现在一切正常。

相关内容