曾经只知道Cron 里的任务出错时会发邮件的,但是至于如何发的却怎么也弄不明白,虽然早知道了strace命令,但是还是用的不够灵活,今天突然想到strace一下crond进程,兴许可以看到些感兴趣的东西,但是仅仅strace -o a.txt -p pid 却看不到什么有意思的东西,大抵有意思的东西都在cron fork出来的进程里了吧,记得strace是可以跟踪子进程的,但是没有用过,man了一下,原来是 -f 选项,于是:
strace -o a.txt -f -p pid
tail -f a.txt 果然看到cron是通过sendmail来发邮件的,原语句为:
execve("/usr/sbin/sendmail", ["/usr/sbin/sendmail", "-FCronDaemon", "-i", "-odi", "-oem", "-oi", "-t"], [/* 6 vars */]) = 0