出于某种原因,我在 apport upgrades 期间遇到错误,其原因是
% sudo service apport start
start: Job failed to start
在 sysvinit 下,我可以通过运行例如调试此类问题
sudo sh -x /etc/init.d/whatever start
但这似乎并没有映射到新贵。接下来我应该尝试什么?
事实证明,有一种解决方法可以让安装继续进行。但我仍然对如何跟踪脚本的一般问题感兴趣。
出于某种原因,我在 apport upgrades 期间遇到错误,其原因是
% sudo service apport start
start: Job failed to start
在 sysvinit 下,我可以通过运行例如调试此类问题
sudo sh -x /etc/init.d/whatever start
但这似乎并没有映射到新贵。接下来我应该尝试什么?
事实证明,有一种解决方法可以让安装继续进行。但我仍然对如何跟踪脚本的一般问题感兴趣。
Upstart 将您的服务执行记录在一个同名的日志文件中
/var/log/upstart/your-service-name.log
。应该会有所帮助。以下所有信息(以及更多有用的 Upstart 帮助)均来自The Upstart Cookbook。第 18 节介绍了调试。 http://upstart.ubuntu.com/cookbook/#debugging
在这种跟踪 Upstart 作业的“脚本”节的特定情况下,您应该在“脚本”一词的正下方添加以下行:
奇怪位置的原因是 /dev/.initramfs/ 在很早的引导中可用,在加载根文件系统之前,并且在引导后继续可用。我猜很合适,但是,您可能不需要使用该路径。不过,很高兴知道这个选项。
还应该注意的是,所有脚本都运行,
set -e
因此任何失败的命令都将完全退出脚本。这是有道理的,因为在以 root 身份运行脚本时应该非常小心。我强烈建议任何从事 Upstart 工作的人参考上面链接的 Upstart Cookbook。