前端时间搭了一服务,这个服务需要每隔一定的时间处理一些业务,因为用的 Mac 系统很自然就想到了使用 crontab,网上查了一下 crontab 的用法很快就配置完毕了。但是好景不长,自从配置完定时任务后,每隔一段时间这台服务器就会莫名的卡死,头几次单蠢的认为只是简单的机器故障,我使用了大招【重启大法】解决了。但是因为上面有些服务不能启动自拉启,重启一次有些麻烦。恰好今天又出现了,就详细排查了一下原因,当我查看进程的时候,我这个人都麻了

... 这里我省略了N行类似的记录

root               499   0.0  0.0  4298116    376   ??  S    12:15PM   0:00.00 /usr/sbin/cron
root               251   0.0  0.0  4290180    964   ??  Ss   12:14PM   0:00.01 /usr/sbin/cron
root              1007   0.0  0.0  4298116    376   ??  S    12:48PM   0:00.00 /usr/sbin/cron
root              1173   0.0  0.0        0      0   ??  Z    12:50PM   0:00.00 (cron)
root              1090   0.0  0.0        0      0   ??  Z    12:49PM   0:00.00 (cron)
root              1017   0.0  0.0        0      0   ??  Z    12:48PM   0:00.00 (cron)

启了这么多进程,而且还有 N 多僵尸进程,妈个鸡。

为什么会启这么多进程?为什么还有这么多僵尸? 小朋友我真的有很多问号??????

难道定时执行的脚本有 Bug?我手动执行了一下,输出正常。
难道定时执行的脚本权限不对?我又查看一下脚本的权限,所有组别都有执行权限。
我在哪儿?我是谁?我要干啥??? 好吧,我上个厕所冷静一下。

这么成熟的东西不应该有问题,肯定是我打开姿势不对,又在网上看看了别人写的例子,偶然发现都把输出干掉了 /dev/null 2>&1
我尝试着加了一下,妈呀! 好了。。。

有修改了一下关键词查了查,发现有人确实也有对应的情况,但是他解释了因为脚本的日志输出会触发系统sendmail,因为内容多就堆积了。。。好吧,我大概也是如此了。


↙↙↙阅读原文可查看相关链接,并与作者交流