首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MacOS上加载系统范围的守护进程

如何在MacOS上加载系统范围的守护进程
EN

Stack Overflow用户
提问于 2009-12-14 10:18:32
回答 1查看 7.5K关注 0票数 2

我正在尝试用这个命令launchctl load /Library/LaunchDaemons/myPlistFileName加载我的守护进程应用程序--它可以正常工作,但是只有当我的用户登录到系统上时,它才能正常工作。

我如何加载我的deamon应用程序,它将在没有任何用户登录到系统(比如windows-services)的情况下保持加载?

命令sudo launchctl load /Library/LaunchDaemons/myPlistFileName给了我一个错误-> nothing to load

哪一种方法是正确的?

编辑:我的Plist-文件

代码语言:javascript
运行
复制
<key>Label</key>
<string>com.myCompany.myApplication</string>
<key>ProgramArguments</key>
<array>
    <string>open</string>
    <string>-g</string>
    <string>/Applications/myAppDir/myApplication.app</string>
</array>
<key>UserName</key>
<string>root</string>
<key>GroupName</key>
<string>wheel</string>
<key>KeepAlive</key>
<true/>
<key>OnDemand</key>
<false/>

目前情况是这样的:在系统-启动我的守护进程时,使用根权限启动。使用用户帐户登录后,守护进程重新启动,我的用户将成为进程的新所有者。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-14 18:56:42

使用"sudo launchctl load;sudo launchctl start“或,在较新版本的launchctl上,"sudo launchctl提交-l -- .”是该走的路。

很难诊断为什么您的"sudo launchctl“命令在没有实际看到PLIST的情况下失败,但是您应该确保PLIST的权限对每个人都是可读的(但只能通过root:UserName或root:admin),您应该确保给定了"WorkingDirectory”和"EnvironmentVariables“字段,您应该确保"Program”为所讨论的程序提供了一个绝对路径(例如,不要依赖用户对path环境变量的特定设置),并且“WorkingDirectory”和“EnvironmentVariables”字段应该在适用的情况下得到正确的定义。

另见:man launchd.plist

编辑:

您还可以尝试在尝试执行"sudo . load“之前运行”停止“和”卸载“命令。

编辑:

现在你上传了你的PLIST文件很清楚你的问题是什么..。在以其他用户的身份运行时,不能使用open命令。见以root用户身份运行OS应用程序。而且,我敢肯定,KeepAlive和OnDemand键是免费的。我想这些都可以删除。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1900075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档