我正在尝试使用 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
现在一切正常。