[launchd-dev] Check-in failed?

Vyacheslav Karamov ubuntulist at yandex.ru
Mon Jun 2 04:58:15 PDT 2008


Hi All!


I'm writing my first launchd-enabled daemon, It works in Tiger, but not 
in Leopard.
It writes "Check-in failed:" into syslog end exits. Here is my code:

int main (int argc, char * const argv[])
{
    signal(SIGTERM, SigtermHandler);
    signal(SIGINT,  SigtermHandler);
    /*
     * Create a new ASL log
     *
     */     
    g_asl = asl_open("AudioServer", "Daemon", ASL_OPT_STDERR);
    log_msg = asl_new(ASL_TYPE_MSG);
    asl_set(log_msg, ASL_KEY_SENDER, "AudioServer");
    asl_set_filter(g_asl, ASL_FILTER_MASK_UPTO(ASL_LEVEL_INFO));
   
    /*
     * Register ourselves with launchd.
     *
     */
    launch_data_t checkin_request = 
launch_data_new_string(LAUNCH_KEY_CHECKIN);
    if ( checkin_request == NULL )
    {
        asl_log(g_asl, log_msg, ASL_LEVEL_ERR, 
"launch_data_new_string(\"" LAUNCH_KEY_CHECKIN "\") Unable to create 
string.");
        return EXIT_FAILURE;
    }
   
    launch_data_t checkin_response = launch_msg(checkin_request);
    if ( checkin_response == NULL )
    {
        asl_log(g_asl, log_msg, ASL_LEVEL_ERR, "launch_msg(\"" 
LAUNCH_KEY_CHECKIN "\") IPC failure: %m");
        return EXIT_FAILURE;
    }
   
    if (LAUNCH_DATA_ERRNO == launch_data_get_type(checkin_response))
    {
        errno = launch_data_get_errno(checkin_response);
        asl_log(g_asl, log_msg, ASL_LEVEL_ERR, "Check-in failed: %m");
        return EXIT_FAILURE;
    }
....
}

$ cat  /Library/LaunchDaemons/com.circle.AudioServer.Debug.plist:

  <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE plist/ (View Source for full doctype...)/>
- <#> <plist version="*1.0*">
- <#> <dict>
  <key>Label</key>
  <string>com.circle.AudioServer</string>
  <key>OnDemand</key>
  <false />
  <key>ProgramArguments</key>
- <#> <array>
  
<string>/Users/slava/Projects/AudioServer/build/Debug/AudioServer</string>
  </array>
  <key>RunAtLoad</key>
  <true />
  <key>ServiceIPC</key>
  <true />
</dict>
 </plist>

Both binary and property list have  root:wheel 755 permissions





More information about the launchd-dev mailing list