一个简单的 shell 脚本,用于回显 /dev/tty 文件:
$ cat a.sh
#/bin/bash
echo welcome >/dev/tty
一切都很顺利。现在,当从 autosys 执行相同的 shell 脚本时,会出现错误:
/dev/tty: cannot create [No such device or address]
不清楚为什么 autosys 中 tty 文件不可用。有人可以帮助理解为什么会发生这种情况吗?
答案1
入口/dev/tty
点指向当前终端。
当您从 autosys 运行作业时,没有与该作业关联的终端,因此尝试访问/dev/tty
将导致错误。如果您使用cron
或at
或其他调度程序,您会看到同样的情况。
通常只有交互式进程才会尝试使用/dev/tty
.
使用autosys,系统将捕获标准输出(正常输出)和标准错误错误率(错误消息)并将它们放入作业结果数据中,然后您可以检索和查看。
如果您希望将输出写入其他地方...它应该放在哪里?没有终端。您可能想尝试一下,/dev/console
但这需要 root 访问权限。您可能需要一个日志文件,或者使用syslog
。但是,通常情况下,您只需让 autosys 像往常一样收集 STDOUT/STDERR :-)