前端时间搭了一服务,这个服务需要每隔一定的时间处理一些业务,因为用的 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
,因为内容多就堆积了。。。好吧,我大概也是如此了。