代码之家  ›  专栏  ›  技术社区  ›  Thomi

启动代理未启动

  •  1
  • Thomi  · 技术社区  · 14 年前

    我正试图写一封信 launchd agent

    我创建了一个名为 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 参数已更改。

    限制加载会话类型 属性已更改?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Ken Aspeslagh    14 年前

    不确定这是否是问题所在,但我认为不应该同时指定OnDemand/RunAtLoad和KeepAlive。据我所知,KeepAlive键取代了OnDemand/RunAtLoad组合键。

    http://developer.apple.com/mac/library/technotes/tn2005/tn2083.html#SECCODINGRECOMMENDATIONS

        2
  •  2
  •   Thomi    14 年前

    找到问题了-很明显 launchd 不适合旧样式 plist XML 文件解决了这个问题。