Programm-Dauerlauf erzwingen

Grundsätzliches

Um ein Programm nach dem Anmelden automatisch zu starten, genügt es, das Programm zu den “Anmeldeobjekten” in den Systemeinstellungen unter “Benutzer & Gruppen” hinzuzufügen.

Anmeldeobjekte können jedoch unterdrückt werden (Taste Shift beim Anmelden gedrückt halten), das Programm kann beendet werden, oder es stürt einfach ab. Dies kann für bestimmte Anwendungen unerwünscht sein, insbesondere wenn dadurch Dienste bereitgestellt werden, die dauerhaft verfügbar sein sollen.

Mit launchd, einem Mac-Dienstprogramm, kann neben vielen anderen Dingen ein solcher Dauerlauf erzwungen werden.

Vorgehen

Als Beispiel dient TextEdit.

Für die Einstellungsdatei sollte ein Name nach umgekehrtem URL-Schema gewählt werden, z.B.:

de.cafe-megabyte.textedit.keepAlive.plist

Folgenden Inhalt in eine leere Textdatei einfügen (dort wird der Dateiname ohne die Endung .plist referenziert):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>KeepAlive</key>
		<true/>
		<key>Label</key>
		<string>de.cafe-megabyte.textedit.keepAlive</string>
		<key>ProgramArguments</key>
		<array>
			<string>/usr/bin/open</string>
			<string>-W</string>
			<string>/System/Applications/TextEdit.app</string>
		</array>
	</dict>
</plist>

Die Datei mit o.g. Namen auf dem Schreibtisch speichern.

Anschließend muß die Datei an den Zielort bewegt werden. Hierzu den eigenen Library-Ordner öffnen:

open ~/Library/

Wenn nicht vorhanden, dort einen neuen Ordner anlegen mit Namen LaunchAgents.

Anschließend die Datei vom Schreibtisch in den Ordner LaunchAgents bewegen.

Ab dem nächsten Anmelden bzw. Neustart wird die Einstellung aktiv.

Sie kann auch sofort aktiviert werden:

launchctl load PLIST_DATEI

TextEdit sollte unmittelbar nach Ausführen dieses Befehls starten. Wird es beendet, startet es nach wenigen Sekunden erneut.

Bei Problemen kann die Einstellung auch sofort deaktiviert werden:

launchctl unload PLIST_DATEI

Damit diese beim nächsten Login nicht automatisch wieder aktiviert wird, muß die Einstellungsdatei aus dem Ordner LaunchAgents herausbewegt werden.