OSX:如何检查launchctl命令的返回值

5 macos launchd

在OSX上使用launchctl来启动和停止服务看起来很棒,但我还是没有看到检查返回值以确保它确实启动.即使服务无法启动,返回值似乎总是回归为零

此plist文件包含错误,因此无法按预期启动Drizzle

% launchctl start /Library/LaunchDaemons/org.drizzlebad.plist

% echo $?

0
Run Code Online (Sandbox Code Playgroud)

除了检查此服务的pid文件是否存在之外的任何建议?

Jer*_*man 10

你必须做错事,因为launchctl成功时只返回0:

$ launchctl start foobar
launchctl start error: No such process
$ echo $?
1
Run Code Online (Sandbox Code Playgroud)

此外,launchctl start获取作业标题(通常是反向DNS样式的名称),而不是plist的路径.这是launchctl loadunload那条走路.

如果您坚持认为它对您不起作用,您可以尝试仅为launchctl list您的作业名称输出,并在必要时解析字段.