下面的代码应该会在今天上午9:00在我的Linux命令行上打印"hello“(或一些提示):
$ at 9:00AM
warning: commands will be executed using /bin/sh
at> echo "hello"
at> <EOT>
但是,在指定的时间,什么也不会发生。
我有一个空的etc/at.deny
,没有/etc/at.allow
文件,所以使用该命令的权限应该不会有任何问题。此外,在上午9:00写入文件的工作方式如下:
$ at 9:00AM
at> echo "hello" > /home/mart/hello.txt
at> <EOT>
$ cat /home/mart/hello.txt
hello
所有作业都按计划显示,我只是无法将任何输出输出到终端窗口(我使用的是带有Terminator的Crunchbang Linux )。为什么?我是否需要以某种方式指定该输出的窗口?
谢谢你的帮助!
发布于 2012-10-19 14:29:13
at
从守护进程(atd
)运行命令,该守护进程无权访问您的终端。因此,脚本的输出不会出现在您的终端中(除非您在命令中通过管道连接到正确的tty
)。
相反,它按照man at
所说的做:
用户将收到来自其命令的标准错误和标准输出的邮件。
如果您的计算机配置适当,则可以使用mail
访问这些报告。
如果您想让at
写入您的终端,您可以尝试将输出通过管道传输到write
,它会将一条消息写入用户的TTY;如果您希望写入连接到系统的每个终端,则可以尝试通过管道将输出传输到wall
。
发布于 2012-10-21 16:54:35
好的,nneonneo的解释引导我使用wall
,它向所有用户发送消息。因此,可以像这样在终端窗口中设置自己的提醒:
$ at 9:00AM
warning: commands will be executed using /bin/sh
at> echo "hello" | wall
at> <EOT>
https://stackoverflow.com/questions/12968535
复制相似问题