Umgebungsvariable für launchctl festlegen

884
rda3000

Ich habe dieses todo.txt-Add-On eingerichtet und möchte jetzt todo.sh recurjeden Morgen laufen . Ich habe Lingon (eine Mac-GUI), die den Befehl ausführt, aber ich erhalte die folgende Fehlermeldung:

5/15/12 10:33:00.067 AM ryan-recurring-tasks: Can't exec "todo.sh": No such file or directory at /Users/ryan/Dropbox/todo/.todo.actions.d/recur line 70. 

Mir wurde empfohlen, die Umgebungsvariable explizit festzulegen, aber ich bin mir der Syntax nicht sicher. Ich habe alle ausprobiert, aber keine Würfel:

launchctl setenv TODO_SH $TODO_SH  launchctl setenv TODO_SH $/Users/ryan/Dropbox/todo/todo.sh  launchctl setenv TODO_SH /Users/ryan/Dropbox/todo/todo.sh 

Hier sind meine Lingon-Einstellungen für den Befehl, falls dort eine Option vorhanden ist, die helfen könnte. Ich weiß nicht, was das Feld "Änderungen an diesem Pfad" darstellt ...

Danke für jede Hilfe!

0

2 Antworten auf die Frage

0
Peet Corelli

Anscheinend hängt das Skript von /Users/ryan/Dropbox/todo/.todo.actions.d/recur ab. Existiert diese Datei tatsächlich?

Mit den Optionen "Änderungen an diesem Pfad" wird launchd angewiesen, das Skript oder den Befehl auszuführen, wenn der angegebene Ordner geändert wird. Es hat nichts mit Ihrem Problem zu tun.

Diese Datei existiert, und hier ist der Verweis auf todo.sh (um Zeile 70), der den Fehler auslöst: `für mein $ add (@ $ adds) ," command ", "add", $ add); (system (@args) == 0) oder die "system @args failed: $?"; } ` rda3000 vor 11 Jahren 0
Das ist also ein PHP-Skript? Es scheint, als müssten Sie es so nennen: php -f / Users / ryan / Dropbox / todo / todo.sh Läuft es, wenn Sie es manuell aufrufen? Peet Corelli vor 11 Jahren 0
Es ist Perl - und es wird manuell mit dem Befehl "todo.sh recur" ausgeführt rda3000 vor 11 Jahren 0
0
Paul Roub

Das Recur-Skript erwartet todo.sh, dass es sich in Ihrem Pfad befindet (dazu wird es $TODO_SHletztendlich erweitert). Es gibt verschiedene Möglichkeiten, Ihren erweiterten Pfad (einschließlich des Dropbox-ToDo-Verzeichnisses) zum Pfad von launchd recurhinzuzufügen. Die bessere Lösung wäre jedoch, das Add-On so zu bearbeiten, dass es folgendermaßen aussieht:

my @args = ($ENV, "command", "add", $add); 

stattdessen.

Wenn das funktioniert, lass es mich wissen, ich werde das veröffentlichte Skript aktualisieren.