鉴于没有可显示的屏幕,标准输出at
和cron
任务的去向在哪里?
它没有出现在作业开始的目录中,也没有出现在我的主目录中。
鉴于我不知道如何调试或跟踪后台作业,我怎么能真正解决这个问题?
Jar*_*nen 13
从 cron 手册页:
执行命令时,任何输出都会通过邮件发送给 crontab 的所有者(或发送给在 crontab 中的 MAILTO 环境变量中命名的用户,如果存在的话)。运行这些进程的 cron 的子副本的名称被强制为大写,这将在 syslog 和 ps 输出中看到。
所以你应该检查你/root 的邮件,或者系统日志(例如/var/log/syslog)。
小智 7
对于长时间运行的进程,有时在收到电子邮件之前知道输出是什么很有用,我用它来代替:
ps
找到你正在运行的程序(进程IDPID
下);用于lsof
查找输出正在写入的文件:
lsof -p PID
Run Code Online (Sandbox Code Playgroud)在输出中,查找列标题下的1u
和2u
行FD
。
这些行将告诉您进程输出在通过邮件发送之前将进入哪些临时文件。通常,对于at
,文件位于/var/spool/cron/atjobs/
. 最后,显示该文件,您将找到进程的(当前)输出。