установка переменной среды для launchctl

837
rda3000

Я настроил это дополнение todo.txt и теперь хочу запускать todo.sh recurкаждое утро. У меня Lingon (графический интерфейс Mac) запускает команду, но я получаю следующую ошибку:

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. 

Мне посоветовали установить переменную среды явно, но я не уверен в синтаксисе. Я пробовал все это, но не игра в кости

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 

Вот мои настройки Lingon для команды, на случай, если там есть опция, которая может помочь. Я не знаю, что представляет собой поле «Изменения в этом пути» ...

Спасибо за любую помощь!

0

2 ответа на вопрос

0
Peet Corelli

It looks like the script depends on /Users/ryan/Dropbox/todo/.todo.actions.d/recur. Does this file actually exist?

The "Changes to this path" options tells launchd to execute the script or command when the given folder is changed. It's unrelated to your problem.

Этот файл существует, и вот ссылка на todo.sh (около строки 70), которая выдает ошибку: `for my $ add (@ $ add) ," command ", «добавить», $ добавить); (system (@args) == 0) или умрите "system @args fail: $?"; } ` rda3000 11 лет назад 0
Так что это скрипт PHP? Похоже, вам нужно было бы назвать его так: `php -f / Users / ryan / Dropbox / todo / todo.sh` Он запускается, если вы вызываете его вручную? Peet Corelli 11 лет назад 0
это perl - и он запускается вручную с помощью команды `todo.sh recur` rda3000 11 лет назад 0
0
Paul Roub

Ожидается, что рекурсивный скрипт todo.shбудет на вашем пути (это то, что в $TODO_SHконечном итоге расширяется). Есть несколько способов добавить ваш расширенный путь (включая каталог todo Dropbox) к пути launchd, но лучшим решением может быть редактирование recurнадстройки:

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

вместо.

Если это сработает, дайте мне знать, я обновлю выпущенный скрипт.