macOS系统的启动项会以 .plist 的文件存在于以下目录中:
/Library/LaunchDaemons
:系统启动时运行,用户不登录也会运行。/Library/LaunchAgents
:用户登录后运行。/System/Library/LaunchDaemons
:系统自带的启动项/System/Library/LaunchAgents
:系统自带的启动项~/Library/LaunchAgents
:用户自定义的用户启动项
每个 .plist 文件中,有 3 个属性控制着某个程序是否会开机自动启动。
KeepAlive
:决定程序是否需要一直运行,如果是 false 则需要时才启动。默认 falseRunAtLoad
:开机时是否自动运行程序。默认 false。SuccessfulExit
:此项为 true 时,程序正常退出时,会重启(即退出码为 0);为 false 时,程序非正常退出时重启。此项设置时会隐含默认 RunAtLoad = true,因为程序需要至少运行一次才能获得退出状态。
所以其实针对这三项,不同的值有不同的表现:
- 如果
KeepAlive
= false: - 当
RunAtLoad
= false 时:程序只有在有需要的时候运行。 - 当
RunAtLoad
= true 时:程序在启动时会运行一次,然后等待在有需要的时候运行。 - 当
SuccessfulExit
= true / false 时:不论RunAtLoad
值是什么,都会在启动时运行一次。其后根据SuccessfulExit
值来决定是否重启。 - 如果
KeepAlive
= true : - 不论
RunAtLoad
/SuccessfulExit的
值是什么,都会启动时运行且一直保持运行状态。
如果不希望开机自动运行某程序,则需要:
1. 找到对应程序的 .plist 文件
2. 将 RunAtLoad / KeepAlive的值均设为 <false/>
3. 删除 SuccessfulExit属性。
参考链接:
https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html
https://developer.apple.com/library/archive/technotes/tn2083/_index.html
https://www.jianshu.com/p/dcf6de92a2b5
No comments:
Post a Comment