我有一个流程,我希望尽快开始我的系统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
脚本中的日志记录,但有时我在重启后根本看不到日志记录,这意味着我的upstart脚本没有被触发。在运行级别上是否需要更改以使其正常工作?
我有一个在Hypervisor中运行的VM,我正在使用Ubuntu。
答案 0 :(得分:1)
您的流程运行良好,但在系统启动期间,很多事情都是并行的。
IF挂载(使/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