问题:
linux crond 的运行脚本 导致 sendemail 的进程导致内置模式消耗大多cpu 如下图
图片:
原因:
crond在执行脚本时会将脚本输出信息以邮件的形式发送给系统用户,所以必然要调用sendmail,而sendmail又会调用postdrop发送邮件,但是如果系统的postfix服务没有正常运行,那么邮件就会发送不成功,造成sendmail、postdrop、crond进程就无法正常退出,形成大量的僵尸进程
解决办法 :
1、将 crond 服务的 MAILTO="",那就不发任何邮件。
vim /etc/crondtab
图片:
vim /etc/cron.d/0hourly
图片:
crontab -e 在文件最前的 MAILTO=""
2、crontab -e 配置执行脚本的时候 设置不接受这样的邮件 在 脚本 加上 > /dev/null 2>&1
当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1 即可,如:
20 03 * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1
配置后的执行效果 :sy 占用的cpu 的资源明显下降
图片:
评论 (0)