假设我有一个每分钟运行一次的crontab作业,该作业涉及将shell脚本的输出邮寄到某个电子邮件地址。我确信这项工作需要一分多钟才能完成。操作系统如何处理这个问题?我检查了我的系统日志,它向我显示该作业正在运行,但没有显示发送电子邮件的迹象。我对Linux比较陌生,所以请跟我说:]
答案 0 :(得分:0)
通过创建以下脚本:
#!/bin/bash
file=/tmp/test$RANDOM
touch "$file"
sleep 600
rm "$file"
在我的crontab中每分钟运行一次。
guido@solid:~$ crontab -l
* * * * * /home/guido/cmd.sh
我可以看到有很多cmd.sh运行的实例:
guido@solid:~$ ls /tmp/test*
/tmp/test7822 /tmp/test12278 /tmp/test16118 /tmp/test25642
/tmp/test11429 /tmp/test15958 /tmp/test18172 /tmp/test26104
guido@solid:~$ ps -e |grep cmd.sh
26005 ? 00:00:00 cmd.sh
26454 ? 00:00:00 cmd.sh
26999 ? 00:00:00 cmd.sh
27450 ? 00:00:00 cmd.sh
27895 ? 00:00:00 cmd.sh
28667 ? 00:00:00 cmd.sh
29220 ? 00:00:00 cmd.sh
29727 ? 00:00:00 cmd.sh
30232 ? 00:00:00 cmd.sh
这意味着,您的邮件作业正在多次运行,这可能会导致一些问题。在您确定没有重叠的情况下,或者更改作业以执行锁定,以便不会出现问题。
至于为什么没有任何关于您邮件发送的指示,我无法提供更多信息。