我在 launchctl 中设置了几个服务,它们都在启动时启动,并在出于任何原因停止时自动重新启动。到目前为止,这很棒。
但有时我希望其中一项服务退出而不是重新启动一段时间。
除了从launchctl中删除服务(这也会立即停止它,我不想这样做)之外,是否有推荐的方法来做到这一点?
我找到了一种方法。我将以下内容添加到 plist 文件中。
代替
<key>KeepAlive</key>
<true/>
Run Code Online (Sandbox Code Playgroud)
我做到了
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
Run Code Online (Sandbox Code Playgroud)
只是将 KeepAlive 设置为 false 会干扰工作的开始。(大概是在等待被某人调用。)但 KeepAlive 的状态也可以在运行时确定。该服务现在会在无故退出时自动重启(即当它被杀死时),但不会在它出于某种原因退出时(即定期关闭)自动重启。这就是我需要的。
归档时间: |
|
查看次数: |
2698 次 |
最近记录: |