我正在尝试在 Upstart 中设置一个脚本,用于启动多个内部进程,并在必要时终止它们
$ listener.py -startall
$ listener.py -killall
我可以使用此设置运行它:
# 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
但我想知道如何运行命令 listener.py -killall 来完成服务:
$ sudo service listener stop
$ stop: Unknown instance:
我的 upstart 脚本仅启动服务,但是当我尝试停止它时它不起作用。
提前致谢。
答案1
在 Ubuntu 上,plymouth.conf 中有一些与我的情况类似的内容,然后像 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
现在一切正常!