Как заставить Ubuntu выскочку не зависать при интерактивном запуске и остановке?
Я создал много сценариев выскочки, которые отлично работают во время инициализации, но часто зависают, когда я ввожу их в консоль. Если я нажимаю CTRL + C, все, что происходит, - это изменение состояния задания. Скрипт никогда не запускается.
Я запускаю Ubuntu Lucid на виртуальном сервере Xen с ядром Linux 2.6.39.
Ниже приведен лишь типичный пример многих сценариев, которые ведут себя таким образом:
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
Посмотрите мой вопрос на askubuntu.com о том же:
https://askubuntu.com/questions/3126/upstart-supervised-init-script-for-apache
В опубликованном вами примере все сводится к прямому выполнению двоичного файла apache вместо выполнения сценария apache2ctl. Upstart ожидает, что процесс не начнет умирать сразу, в основном; что и делает apache2ctl.
На мой вопрос на askubuntu.com есть рабочий сценарий выскочки Apache.