![Mac OS X:at 命令不起作用](https://linux22.com/image/1216168/Mac%20OS%20X%EF%BC%9Aat%20%E5%91%BD%E4%BB%A4%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我将使用 at 命令来安排一项工作。在这里我尝试了以下命令:
$ at now + 1 minute
echo 'Test at command'
<EOD>
我看到该作业是使用 at -l 进行调度的。但是,我没有看到回显。
我猜我可能需要将用户添加到 at.allow 文件中。我在我的 Mac(Snow Leopard)中找不到 at.allow。不确定我需要做什么来测试这个 at 命令?
答案1
要启用所需的atrun
守护进程,如上所述man atrun
,执行:
launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
以 root 身份(例如通过sudo
)。完成此操作后,/var/at/
将是关键目录(尽管最简单的方法是以 root 身份使用at
- 例如,再次通过sudo
!-)。
答案2
在 Snow Leopard 中你需要:
编辑
/System/Library/LaunchDaemons/com.apple.atrun.plist
,将禁用的子节点从true
->更改为false
。使用以下方法卸载当前文件
/System/Library/LaunchDaemons/com.apple.atrun.plist
:sudo launchctl unload -F /System/Library/LaunchDaemons/com.apple.atrun.plist
然后加载编辑后的版本
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
测试其是否适用于:
echo blah | at now+1
如果回显由于其他原因失败,您至少应该能够看到队列被清除:
atq
答案3
我在 OS X Lion 上尝试过这个并且它似乎有效。
首先启用atrun
守护进程:
launchctl load -w
/System/Library/LaunchDaemons/com.apple.atrun.plist
然后将 [您的用户名] 添加到/var/at/at.allow
。
执行后你将收到输出/var/mail/[your username]
我发现排队的项目需要batch
几分钟才能实际执行。
答案4
这launchctl
一步对我来说还不够;Seamus 的评论指给我看最近的答案。
TL;DR 是您还需要/usr/libexec/atrun
在系统偏好设置 > 安全和隐私 > 完全磁盘访问中添加。