为 launchctl 设置环境变量

为 launchctl 设置环境变量

我已经设置了这个 todo.txt 插件现在我想todo.sh recur每天早上运行。我让 Lingon(Mac GUI)运行该命令,但出现以下错误:

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 命令设置,以防万一那里有一个选项可能会有所帮助。我不知道“对此路径的更改”字段代表什么……

谢谢你的帮助!

答案1

recur 脚本应该todo.sh位于您的路径中($TODO_SH最终会扩展为该路径)。有多种方法可以将您的扩展路径(包括 Dropbox todo 目录)添加到 launchd 的路径中,但更好的解决方法可能是编辑附加组件recur以显示以下内容:

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

反而。

如果有效,请告诉我,我会更新发布的脚本。

答案2

看起来该脚本依赖于 /Users/ryan/Dropbox/todo/.todo.actions.d/recur。这个文件真的存在吗?

“更改此路径”选项告诉 launchd 在指定文件夹更改时执行脚本或命令。这与您的问题无关。

相关内容