在 MacOS 上通过 launchD 使用 atrun

在 MacOS 上通过 launchD 使用 atrun

我正在尝试使用 launchDeamon 调用的脚本中的 at 命令来安排作业。这似乎不起作用。atrun 的 launchD 正在运行。Atrun、cron 和终端都具有完全磁盘访问权限。

我正在创建自己的 .plist / launchD 来调用安排作业的脚本。

launchD 正在运行并执行脚本,但作业尚未​​创建。

使用 sudo 在终端中运行脚本就可以了。

使用 .plist 中的 stdout/stderror,我发现它无法打开位于 /usr/lib/cron/jobs 中的 .lockfile。列出路径的内容时,无论出于何种原因,都没有 .lockfile。由于通过终端运行它 - sudo 运行正常,并且查看日志,我认为这只是一个权限问题。

我怎样才能解决这个问题?

答案1

解决方案出奇的简单:当脚本被 launchD 调用时,您用来创建“at”作业的 shell(例如 Bash、Sh 等)需要完全磁盘访问权限才能在“/private/var/at/job”中创建作业文件。

相关内容