我正在尝试launchd agent
为每个登录到 Mac OS X 系统的用户编写一个运行简单应用程序的应用程序。
我创建了一个名为的文件com.mycompany.myapp.plist
并将其放在/Library/LaunchAgents
. 该文件的内容是:
{
LimitLoadToSessionType = "Aqua";
StartInterval = 10;
OnDemand = NO;
KeepAlive = YES;
RunAtLoad = YES;
Label = "com.mycompany.myapp";
Program = "/Users/thomi/myapp";
ProgramArguments = (
"/Users/thomi/myapp",
"-l",
"-d",
);
}
最初我没有StartInterval
设置密钥,因为我认为代理会自动启动。问题是除非我手动发出以下两个命令,否则代理不会启动:
launchctl load -S Aqua -D all
launchctl start com.mycompany.myapp
此外,当我运行时,launchctl list com.mycompany.myapp
我得到以下输出:
{
"Label" = "com.mycompany.myapp";
"LimitLoadToSessionType" = "System";
"OnDemand" = true;
"LastExitStatus" = 0;
"TimeOut" = 30;
"Program" = "/Users/thomi/myapp";
ProgramArguments = (
"/Users/thomi/myapp",
"-l",
"-d",
);
};
请注意,LimitLoadToSessionType
参数已更改。
我在这里错过了什么吗?是否有不同的机制来启动这样的代理?为什么LimitLoadToSessionType
财产变了?