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