如何让 Ubuntu upstart 在交互式启动和停止时不挂起?
我创建了许多 upstart 脚本,它们在初始化期间运行良好,但当我在控制台输入它们时经常挂起。如果我按 CTRL+C 退出,只会发生作业状态改变。脚本永远不会运行。
我在带有 Linux 2.6.39 内核的 Xen 虚拟服务器上运行 Ubuntu Lucid。
下面只是许多具有这种行为的脚本的一个代表性示例:
description "apache2"
start on local-filesystems \
and (net-device-up IFACE=lo) \
and (runlevel [2345])
stop on runlevel [016]
respawn
respawn limit 10 5
expect daemon
script
. /etc/apache2/envvars
/usr/sbin/apache2ctl start
end script
答案1
请查看我在 askubuntu.com 上关于同一件事的问题:
https://askubuntu.com/questions/3126/upstart-supervised-init-script-for-apache
在您发布的示例中,这归结为直接执行 apache 二进制文件与执行 apache2ctl 脚本。Upstart 基本上希望它启动的进程不会立即终止;这正是 apache2ctl 所做的。
我在 askubuntu.com 上提问时有一个可用的 Apache upstart 脚本。