创建一个将执行程序的脚本,如果它退出而没有崩溃,将再次运行它


1

我已经在UNIx交换中询问了这个问题,但我被告知如果标准shell不起作用,也会在这里询问AppleScripts。

我需要一个可以打开应用程序的脚本。等待它退出,如果应用程序正常退出(IE:没有崩溃)重新启动它。否则,保持崩溃报告打开并退出脚本。我希望这个脚本能够运行,直到我手动退出它。

到目前为止,已提出以下建议:

while open -W /path/to/application.app
do
    :
done

但这会打开应用程序,然后在崩溃或退出时会自动再次运行它。我认为这是因为无论等待与否,open都将以正常的0退出代码终止。除非当然打开崩溃,但在这种情况下它不会。

对此有任何帮助表示赞赏。

谢谢。

Answers:


1

要在成功退出时继续重新启动作业,您可以launchd在OSX上使用。为此,您必须准备* .plist文件,以“告诉”launchd如何表现。要在成功退出时重新启动应用程序,请查看KeepAlive- > SuccessfulExitkey(更多信息:https//developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html)。要开始工作,您需要通过launchctl命令启动它,例如:

launchctl load path/to/file.plist

要阻止它:

launchctl unload path/to/file.plist

关于launchctl/ launchd编程的更多信息:

http://alvinalexander.com/mac-os-x/launchd-examples-launchd-plist-file-examples-mac

http://launchd.info

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.