Launchctl list doesn’t show StartInterval

launchd

The following is part of my .plist file:

<plist version="1.0">
<dict>
  <key>Label</key>
  <string>org.myorg.foo</string>
  <key>ProgramArguments</key>
  <array>
    <!-- ... -->
  </array>
  <key>StartInterval</key>
  <integer>300</integer>
</dict>
</plist>

Yet when I do a sudo launchctl list org.myorg.foo it prints:

{
    "LimitLoadToSessionType" = "System";
    "Label" = "org.myorg.foo";
    "OnDemand" = true;
    "LastExitStatus" = 0;
    "Program" = "...";
    "ProgramArguments" = (
        ...
    );
};

Where did the StartInterval go?

Best Answer

StartInterval won't get printed with (sudo) launchctl list [label].

Use sudo launchctl print system/[service-name] instead. It will be printed as run interval.

Depending on the domain/service target use

  • user/<uid>/[service-name]
  • login/<asid>/[service-name]
  • gui/<uid>/[service-name]

instead of system/[service-name]

Examples:

host:~ user$ sudo launchctl print system/com.apple.collabd.expire | grep interval
    run interval = 600 seconds
host:~ user$ launchctl print gui/501/usr.homebrew.mxcl.autoupdate | grep interval
    run interval = 7200 seconds