• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

launchd tut nicht

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
Hallo,

ich habe ein Backup-Script geschrieben und wollte es mit launchd (eigentlich ja mit cron, aber wenn man lieber launchd verwenden soll) täglich ausführen lassen.
Ich habe das .plist-File (unten angehängt) unter ~/Library/LaunchAgents/ gespeichert.
Geladen habe ich es mit:
Code:
launchctl load ~/Library/LaunchAgents/rsync.plist
und mit
Code:
launchctl start rsync
geht es auch, aber leider passiert nun um 21:25 Uhr nichts :(
Ich musste ~/Library/LaunchAgents/ neu erstellen, ist das richtig so?
 

Anhänge

  • Picture 1.png
    Picture 1.png
    36,7 KB · Aufrufe: 175
nein, nur mit OnDemand false. mit true laufen sie auch nicht.
 
nein, auch mit dem Programm Lingon laufen sie nicht. Sie laufen nur mit OnDemand = false.
 
Wäre natürlich nicht schlecht, wenn sie laufen würden.
 
auch die User-Crontabs laufen nicht:

meine mit 'crontab -e' erstelle crontab-datei sieht so aus, wird aber nicht ausgeführt:
Code:
37      15      *       *       *       sebastian       /opt/backup_script
 
In User-Crontabs gibt es kein Feld für den Benutzer, denn der steht ja fest. Also weglassen.

Bezüglich launchd: Es scheint da noch Fehler zu geben. Wenn man den neuen EIntrag einlädt, dann muß der Startzeitpunkt min. eine Stunde in der Zukunft liegen, ansonsten wird es erst am nächsten Tag ausgeführt. Außerdem wird die Zeit im Ruhezustand addiert. Start um 15 Uhr, und 5 Stunden in der Nachst davor geschlafen -> Start um 20 Uhr. Echt buggy dieser Teil.
 
  • Like
Reaktionen: Wikinator
Nogger schrieb:
In User-Crontabs gibt es kein Feld für den Benutzer, denn der steht ja fest. Also weglassen.

Bezüglich launchd: Es scheint da noch Fehler zu geben. Wenn man den neuen EIntrag einlädt, dann muß der Startzeitpunkt min. eine Stunde in der Zukunft liegen, ansonsten wird es erst am nächsten Tag ausgeführt. Außerdem wird die Zeit im Ruhezustand addiert. Start um 15 Uhr, und 5 Stunden in der Nachst davor geschlafen -> Start um 20 Uhr. Echt buggy dieser Teil.

Meines Wissens ist das kein Bug.
 
dann hätte es doch wenigstens in der man-page stehen müssen, oder habe ich das nur übersehen?
 
Warum soll das kein Bug sein?

Nach der launchd.plisl man-page soll 12:30 auch 12:30 heißen. Irgendwas von Addition der Ruhezeit steht nicht drin und ist auch nicht wirklich sinnvoll. Es wird sogar explizit eine Analogie zu cron gezogen.

Warum die eine Stunde Mindestdifferenz zu "jetzt" steht auch nirgends und ich sehe auch keinen technischen Grund dafür.
 
Es gibt mehr als eine themenbezogene manpage ;-) Beispielsweise steht
StartInterval <integer>
This optional key causes the job to be started every N seconds. If the
system is asleep, the job will be started the next time the computer
wakes up. If multiple intervals transpire before the computer is woken,
those events will be coalesced into one event upon wake from sleep.
in
man launchd.plist
 
Ich weiß nicht, wo du daraus abliest, daß der Ausführungszeitpunkt nach dem Aufwachen um die Schlafenszeit verschoben wird. Außerdem ging es um StartCalendarInterval.

Da steht: Der Job wird alle N Sekunden ausgeführt. Wenn zu dem Zeitpunkt der gewünschten Ausführung der Rechner schläft, wird der Job ausgeführt, sobald der Rechner aufwacht. Wurden in der Schlafenszeit mehrere Ausführungszeitpunkte erreicht, wird der Job nur einmal nachgeholt.