Wie kann ich unter Mac OS X mithilfe von Startagenten regelmäßig einen Shell-Befehl ausführen?

1

Wir haben ein Kerberos-Single-Sign-On-System in unserem Unternehmen. Dies bedeutet, dass ich einfach kinit user@DOMAINdas Terminal eingeben und dann auf alle IT-Ressourcen wie Dateiserver, internes Wiki, SVN-Server usw. zugreifen kann.

Das Problem ist, dass ich nur 10 Stunden lang angemeldet bin. Ich muss also kinitjeden Morgen ausgeführt werden, wenn ich meinen Computer aus dem Ruhezustand reaktiviere, und jedes Mal, wenn ich den Computer neu starte.

Gibt es eine Möglichkeit, diesen Befehl automatisch auszuführen, wenn ich den Computer starte und danach alle zehn Stunden?

Ich habe einige Nachforschungen angestellt und gehe davon aus, dass die richtige Vorgehensweise darin besteht, einen Startagenten zu verwenden, da der Befehl als aktueller Benutzer ausgeführt werden muss (kinit benötigt das Kennwort aus dem Schlüsselbund).

Ich habe versucht, die folgende Start-Agent-Datei zu verwenden, aber sie funktioniert nicht wie erwartet:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>net.jabakobob.auto-kinit</string>
    <key>OnDemand</key>
    <true/>
    <key>RunAtLoad</key>
    <false/>
    <key>UserName</key>
    <string>user</string>
    <key>Program</key>
    <string>/usr/bin/kinit</string>
    <key>ProgramArguments</key>
    <array>
        <string>user@DOMAIN</string>
    </array>
    <key>StartInterval</key>
    <integer>10800</integer>
</dict>
</plist>

Ich weiß nicht, warum dieser Startagent nicht funktioniert, und ich habe keine Ahnung, wie ich ihn debuggen soll. Irgendwelche Ideen?

Jakob Egger
quelle

Antworten:

0

/Library/LaunchAgents/sind an einzelne Benutzer /Library/LaunchDaemons/gebunden, die an die gesamte Maschine gebunden sind. Nachdem das System gestartet wurde und der Kernel ausgeführt wird, werden zuerst die in enthaltenen Eigenschaftslistendateien /Library/LaunchDaemons/geladen, da es sich um Daemons auf Systemebene handelt.

Versuchen Sie, Ihre Plist in zu setzen /Library/LaunchDaemons/und zu sehen, ob es funktioniert. Da es das Ziel ist, kinitbeim Booten zu starten, sollte es keine Rolle spielen, ob es auf Systemebene geladen wird.

Wenn es nicht funktioniert, antworten Sie hier mit Ihren Ergebnissen.

Tanmay
quelle