在OSX上,使用launchctl启动和停止服务似乎很棒,但是我不认为无论如何都要检查返回值以确保它真的启动了。即使服务无法启动,返回值似乎也总是返回为零
此plist文件包含错误,因此无法按预期启动毛毛雨
% launchctl start /Library/LaunchDaemons/org.drizzlebad.plist
% echo $?
0除了检查此服务的pid文件是否存在之外,还有其他建议吗?
发布于 2010-11-03 02:44:45
您一定是做错了什么,因为launchctl在成功时只返回0:
$ launchctl start foobar
launchctl start error: No such process
$ echo $?
1此外,launchctl start接受工作头衔(通常是反向DNS样式的名称),而不是plist的路径。launchctl load和unload采用plist路径。
如果您坚持认为它对您不起作用,那么您可以尝试在launchctl list的输出中输入您的作业名,并在必要时解析字段。
发布于 2011-07-12 04:34:15
当您从终端执行launchctl list时,您会注意到-在第二列中...有一个主要是0和-的列表...如果你的程序不正确退出,它会在第二列中显示退出代码...通常是-1或者有时是-251,或者无论是什么情况...记住...只是因为你的启动项可能已经崩溃了... launchctl可能仍然狂热地试图“使它工作”-每10秒.....所以不要让一个跳出的启动进程永远逗留,因为它肯定会影响性能.
使用-w卸载它...和plist的完整路径,或至少停止(并可选地删除它)与捆绑标识符。-w将在您的/var/db/launchd文件夹中的plist中创建一个秘密条目,告诉内核下次机器启动时不要加载它。不管Plist中的"enabled“XML条目是什么……所以要注意,下一次启动时,不只是标志在起作用,项目是否会被复活...
如果需要,可以将overrides.plist文件备份到tat var文件夹中,如果随着时间推移加载和卸载变得过于复杂,可以重新开始...还有其他的办法,但我现在不说了..在我顺便教你如何完全冲洗你的电脑之前...
https://stackoverflow.com/questions/4081017
复制相似问题