Как отлаживать скрипт выскочка, который прерывается с ошибкой?

7

У меня есть процесс, который я хочу начать, как только моя система rebooted , тем не менее, поэтому я использовал для этого скрипт upstart , но иногда то, что я замечаю, это мой процесс не запускается во время жесткого перезагрузка (включение и запуск машины), поэтому я думаю, что мой сценарий выскочки не получает удар после жесткой перезагрузки. Я считаю, что для Hard Reboot нет уровня запуска.

Я путаюсь, что иногда во время перезагрузки он работает, но иногда он не работает. И как я могу отладить это?

Ниже мой сценарий выскочки:

# sudo start helper
# sudo stop helper
# sudo status helper
start on runlevel [2345]
stop on runlevel [!2345]

chdir /data
respawn

pre-start script
  echo "['date'] Agent Starting" >> /data/agent.log
  sleep 30
end script

post-stop script
  echo "['date'] Agent Stopping" >> /data/agent.log
  sleep 30
end script

limit core unlimited unlimited
limit nofile 100000 100000
setuid goldy
exec python helper.py

Есть ли способ отладить это из того, что происходит? Я могу легко воспроизвести это, я считаю. Любые указатели на то, что я могу здесь сделать?

Примечание:

Во время перезагрузки иногда я вижу записи, которые у меня есть в скрипте pre-start , но иногда я не вижу ведения журнала вообще после перезагрузки, а это значит, что мой сценарий выскочки не был запущен. Есть ли что-то, что мне нужно изменить на уровне запуска, чтобы заставить его работать?

У меня есть виртуальная машина, которая работает в Hypervisor, и я работаю с Ubuntu.

    
задан john 18.10.2017 в 01:21
источник

1 ответ

1

Ваш процесс работает хорошо, НО во время запуска системы многие вещи идут параллельно.

IF mount (который предоставляет доступную папку /data ) работает позже вашего pre-start script , вы не увидите «результаты» pre-start script .

Я предлагаю переместить сон 30 раньше (BTW 30 секунд кажется слишком медленным):

pre-start script
  sleep 30 # sleep 10 should be enough
  echo "['date'] Agent Starting" >> /data/agent.log
end script
    
ответ дан V-Mark 24.10.2017 в 02:00