Crontab-Task "LSOpenURLsWithRole () fehlgeschlagen ... mit Fehler -600 für die Datei ..."

1

Ich bin gerade mit El Capitan auf ein neues MacBook umgezogen und habe versucht, meine Crontab für Sicherungsaufgaben einzurichten. Hier ist, wie ich es eingerichtet habe (via crontab -e)

40 7 * * * /Users/myusername/daily.sh "daily tasks run 7:40a"

Daily.sh sieht so aus

open -b com.apple.terminal ~/backupThing1.sh
open -b com.apple.terminal ~/dailyThing2.sh

Ich habe es so eingerichtet, dass ich sehe, dass die Terminals hochkommen und auf einige Eingaben und Passwortabfragen reagieren können.

Auf jeden Fall schlägt diese Aufgabe mit den folgenden Meldungen fehl:

LSOpenURLsWithRole() failed for the application /Applications/Utilities/Terminal.app with error -600 for the file /Users/myusername/backupThing1.sh.
LSOpenURLsWithRole() failed for the application /Applications/Utilities/Terminal.app with error -600 for the file /Users/myusername/dailyThing1.sh.

Ich habe überprüft, dass diese Skripte im Besitz von myusernameund ausführbar sind. Was vermisse ich?

Jlarson
quelle
LSOpenURLsWithRole () scheint immer ein Fehler bei den Ausführungsberechtigungen zu sein - es gibt viele ähnliche Fragen auf Ask Different - apple.stackexchange.com/search?q=LSOpenURLsWithRole%28%29
Tetsujin
Ich habe eine Antwort für das gleiche Problem gepostet, aber der Fehler wird als -10810 angezeigt ... vielleicht die asme-Sache. Vielen Dank.
Dan Rosenstark

Antworten:

1

Wie in der anderen Antwort angegeben, liegt der Fehler daran, dass Sie versuchen, eine GUI-App auszuführen, wenn Sie nicht angemeldet sind.

Aber in deinem Fall, warum benutzt du hier eine GUI-App (Terminal)?

Rufen Sie einfach Ihre Skripte direkt aus dem Cron-Skript auf.

zB sollte täglich / sh sein

#!/bin/bash
~/backupThing1.sh
~/dailyThing2.sh

Beachten Sie, dass Sie hier möglicherweise absolute Pfade benötigen, da Cron-Jobs nicht dieselbe Umgebung haben wie im Terminal.

Kennzeichen
quelle
Sie können $ HOME anstelle von ~in den meisten Kontexten verwenden, in denen ~dies nicht funktioniert.
Iconoclast
0

Sie werden diesen Fehler sehen

LSOpenURLsWithRole() failed with error -10810

Wenn Sie versuchen, die meisten offenen Befehle (einschließlich Kalender, PhotoBooth usw.) auszuführen, ohne dass ein Benutzer über die eigentliche GUI angemeldet ist. Wenn Sie remote sind, stellen Sie eine Verbindung über VNC her und melden Sie sich an. Andernfalls melden Sie sich einfach über die reguläre OS X-Benutzeroberfläche an (dh über den Anmeldebildschirm, den wir verwenden).

Dan Rosenstark
quelle