2012-05-08 14 views
11

Sono nuovo nel mondo Mac OS X ma ho competenze su Windows Dev.Daemon Mac OS X con Objective-C - launchd

Ho bisogno di sviluppare un daemon (su Windows sarà Windows Service) che carica/scarica file da un servizio Web.

La mia domanda è: è possibile creare un'app scritta in Objective-C che sarà il daemon (da caricare/scaricare) e avviarla quando il sistema operativo inizia a utilizzare launchd? O c'è un altro modo per creare un demone?

si

risposta

4

Grazie Su OS X questi servizi sono chiamati LaunchDaemon (a livello di sistema) e LaunchAgent (user-specifico). Si crea una configurazione che indica al sistema quando iniziare, quale eseguibile eseguire, cosa fare con stdin, stdout e stderr, quali argomenti passare, e così via. Date un'occhiata a queste pagine man:

launchd(8)  # the service controlling other services 
launchctl(1)  # the command to control services 
launchd.plist(5) # the configuration format for services 

Il demone può essere scritto in qualsiasi lingua che gira su OS X. Quindi Objective-C è una scelta tipica per la piattaforma Mac, ma qualsiasi altra cosa da Ruby, Python, e Perl su AppleScript a semplice C o C++ farebbe.

E no, non c'è altro modo (consigliato) di farlo sul Mac. Gli script init.d non funzionano sul Mac [o su Darwin, è il livello UNIX]. O, più precisamente, non c'è l'infrastruttura che li gestisce.

Per ulteriori informazioni vedere Daemons and Services Programming Guide.

+0

Enfasi: *** può essere scritto in qualsiasi lingua. Non utilizzare Obj-C per LaunchDaemon o LaunchAgent a livello di sistema a causa di hack di InputManager! – Richard