我正在尝试使用 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”中创建作业文件。