Launchctl加载与启动,卸载与停止之间的区别


22

我正在阅读launchctl手册页,并对它的功能有一些疑问:

  • 加载与启动,卸载与停止之间有什么区别?
  • 我在哪里找到守护程序的作业标签,它在plist文件中?

Answers:


14

TL; DR

  • 您通常要使用launchctl load -wlaunchctl unload -w
  • startstop通常被保留用于测试和调试工作。

细节

  • launchctl start <label>:开始工作。通常仅将其保留用于测试或调试特定作业。
  • launchctl stop <label>:停止工作。与启动相反,如果将作业配置为保持运行,则作业可能会立即重新启动。

  • launchctl remove <label>:从中删除作业launchd,但异步进行。在返回之前,它不会等待作业实际停止,因此不会对此作业进行任何错误处理。

  • launchctl load <path>:只要未“禁用”作业,就加载并开始作业。
  • launchctl unload <path>:停止并卸载作业。该作业仍将在下次登录/重新启动时重新启动。

  • launchctl load -w <path>:加载并启动作业,同时还将作业标记为“未禁用”。作业将在下次登录/重新启动时重新启动。
  • launchctl unload -w <path>:停止并卸载并禁用作业。该作业将不会在下次登录/重新启动时重新启动。

我在哪里找到守护程序的作业标签,它在plist文件中?

是的,它在plist文件中,通常与plist文件的文件名匹配。


谢谢你,救了我几个小时👏🏻
达纳樵夫

7

加载和卸载告诉启动要加载的配置文件。它是否运行程序以及在什么条件下由plist文件确定。当前未运行的作业可以从开始launchctl start ...和停止launchctl stop ...

作业的标签由标签键定义,plist的名称也应为作业标签,后跟plist扩展名。


6
如何去除因素呢?具体来说,它与卸载有何不同?
chrisortman

@chrisortman remove类似于卸载,只是它不等待作业先停止。它只是立即返回,而不检查是否发生任何错误。
Ryan McGeary '17
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.