Wie lade ich einen systemweiten Daemon unter Mac OS X?

3

Ich versuche meine Daemon-App mit diesem Befehl zu laden

launchctl load /Library/LaunchDaemons/myPlistFileName

Es funktioniert gut, aber nur, wenn mein Benutzer am System angemeldet ist.

Wie kann ich meine Deamon-App laden, die geladen bleibt, ohne dass ein Benutzer im System angemeldet ist (wie die Windows-Dienste)?

Der Befehl

sudo launchctl load /Library/LaunchDaemons/myPlistFileName

gib mir einen fehler -> nichts gefunden zum laden

Welches ist der richtige Weg, um dies zu tun?

Chealion
quelle

Antworten:

4

Um den Job für alle zu laden, müssen Sie mit launchctlRoot-Rechten ausgeführt werden. Wenn der Job bereits unter Ihrem Benutzerkonto geladen ist, wird er stattdessen nicht mit Root-Rechten geladen.

Versuchen Sie launchctl unload /Library/LaunchDaemons/myPlistFileNamezuerst zu laufen, bevor Sie laufen sudo launchctl load -w /Library/LaunchDaemons/myPlistFileName. Sehen Sie sich die Ausgabe in an system.log(Sie können sie bei Bedarf mit Console.app anzeigen), die beim Laden des Dämons auftritt.

Chealion
quelle
War fest auf diesem. Vielen Dank. In der Manpage steht, dass das -w den deaktivierten Schlüssel löscht, der aus der Liste entfernt wurde.
Geekinit
0

Wenn Sie nicht zu rennen scheinen

sudo launchctl load /Library/LaunchDaemons/myPlistFileName

Versuchen Sie zunächst, zum Root-Benutzer zu wechseln:

sudo su

Sie werden aufgefordert, ein Kennwort einzugeben. Geben Sie das Kennwort Ihres Standardbenutzers ein, und Sie verwenden jetzt das Terminal unter dem Stammkonto.

Dann führen Sie die

launchctl load /Library/LaunchDaemons/myPlistFileName

Befehl.

Doron
quelle
0

Ich hatte immer noch Probleme, nachdem ich das versucht hatte. Die Lösung für mich war:

sudo launchctl load -F /Library/LaunchDaemons/myPlistFileName

Danach konnte ich es so oft laden und entladen, wie ich wollte.

Matthew Schinckel
quelle