launchd agent
MacOSXシステムにログインするすべてのユーザーに対して簡単なアプリケーションを実行するを作成しようとしています。
名前の付いたファイルを作成し、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
エージェントが自動的に起動すると思ったので、最初はキーを設定していませんでした。問題は、次の2つのコマンドを手動で発行しない限り、エージェントが起動しないことです。
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
プロパティが変更されたのですか?