我有一个由 Upstart 启动的进程。如果失败,它将尝试重新启动该进程 n 次,之后如果失败,我想重新启动我的 Ubuntu。我在文件中尝试telinit
了halt
等*.conf
。
但我收到了一个错误
stop: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist
是否可以通过 Upstart 实现,或者还有其他方法可以实现?
答案1
以下链接帮助我找到了解决方案。
https://lists.ubuntu.com/archives/upstart-devel/2009-December/001140.html
这意味着您可以执行(作为 /etc/init 中的文件):
start on stopped $JOB RESULT=failed PROCESS=respawn exec /sbin/reboot
如果愿意的话,你可以让它变得更通用,当重生失败时应该导致重新启动的作业可以有(在其配置文件中):
env REBOOT_ON_RESPAWN_FAIL=1 export REBOOT_ON_RESPAWN_FAIL
然后你的重启任务可以与以下内容匹配:
start on stopped REBOOT_ON_RESPAWN_FAIL=1 \ RESULT=failed PROCESS=respawn exec /sbin/reboot