Исходя из этого вопроса , я написал простой сервис upstart ( /etc/init/pms.conf ) для моего безголового сервера Ubuntu Server 11.04 следующим образом:
start on filesystem and net-device-up IFACE=eth0
stop on runlevel [016]
respawn
exec /home/administrator/pms-current/PMS.sh
Я могу запустить (или остановить) этот сервис по желанию из командной строки:
service pms start
И я вижу, что это действительно работает.
Однако, когда я впервые загружаю свою машину, служба не запускается. Если я ввожу SSH в поле и проверяю статус сервиса, я получаю:
$ service pms status
pms stop/waiting
Мой вопрос: почему это происходит? Почему мой сервис не запускается при загрузке?
ОБНОВЛЕНИЕ 1 : не зная, запускалась ли моя служба, а затем умирала или просто не запускалась, я добавила в PMS.sh следующее:
echo "STARTED" > $STARTLOG
Это, очевидно, просто дает мне что-то искать. Я проверил это, запустив службу сам, а затем проверив start.log . Затем я удалил start.log и перезагрузил компьютер. После перезагрузки его там не было, поэтому кажется, что выскочка определенно не запускает мой сервис. Я полагаю, что он мог умереть на более раннем этапе процесса, но это кажется довольно маловероятным, учитывая простоту всего этого.
ОБНОВЛЕНИЕ 2 : Я только что обновил до 11.10, который включает в себя обновление upstart, но эта проблема все еще возникает.
ОБНОВЛЕНИЕ 3 : По запросу я загрузился с --debug
. Вывод cat /var/log/syslog | grep init
слишком длинный, чтобы поместить его в вопрос, но вы смотрите его здесь .
ОБНОВЛЕНИЕ 4 : Больше журналов, на этот раз конф выскочка включен в верхней части. Беги 1 и беги 2 .
cat /var/log/syslog | grep init
после включения загрузки журнала для upstart с помощью инструкций в Upstart Debugging