根据launchctl的手册页(强调我的):
-w覆盖Disabled键并将其设置为false。 在以前的版本中,这个选项会修改configuration文件。 现在,Disabled键的状态被保存在其他磁盘上。
由于禁用标志的当前状态不再设置在.plist文件本身中,因此检查“ Disabled键不再是确定服务是否将在下次引导时运行的准确方法。
这个“其他磁盘上”在哪里? 更重要的是(更重要的是),如何检查这个标志是否被设置?
另外,是否可以将服务设置为在下次启动时运行而不会立即启动(如launchctl load -w /Library/LaunchDaemons/my-service.plist )?
现在禁用(从10.6.x开始)保存在/private/var/db/launchd.db/com.apple.launchd/overrides.plist中,如下所示:
<key>com.apple.AppleFileServer</key> <dict> <key>Disabled</key> <true/> </dict>
你可以parsing这个文件来查看哪些启动的项目被覆盖,但是文件只被设置为root权限(“-rw ——- 1 root wheel”),并且不能保证苹果不会改变事情再次存储在10.7 …
此外,我不知道任何方式来启用现有launchd项目加载下一次启动,而不是立即加载它。 (如果它是一个新项目,没有问题:确保它有Disabled = False,并将其放入/ Library / LaunchDaemons。)