問題:服務(wù)器內(nèi)存接近耗盡報(bào)警怎虫,ps -ef查看有3000多個(gè)進(jìn)程暑认,大部分都是crond困介、sendmail、postdrop
而 postdrop是由sendmail啟動(dòng)的蘸际,而sendmail又是由crond啟動(dòng)的座哩。
問題成因:crond在執(zhí)行腳本時(shí)會(huì)將腳本輸出信息以郵件的形式發(fā)送給系統(tǒng)用戶,所以必然要調(diào)用sendmail捡鱼,而sendmail又會(huì)調(diào)用postdrop發(fā)送郵件八回,但是如果系統(tǒng)的postfix服務(wù)沒有正常運(yùn)行酷愧,那么郵件就會(huì)發(fā)送不成功驾诈,造成sendmail、postdrop溶浴、crond進(jìn)程就無法正常退出乍迄,形成大量的僵尸進(jìn)程
解決辦法:先把僵尸進(jìn)程都干掉ps -ef | egrep "sendmail|postdrop" | grep -v grep |xargs kill,讓內(nèi)存降下來士败,其實(shí)我一開始將postfix服務(wù)重啟了一下闯两,問題就解決了,觀察了一段時(shí)間谅将,僵尸進(jìn)程并沒有再次出現(xiàn)漾狼。
為防以后postfix掛了再出現(xiàn)類似問題,可以進(jìn)行如下配置饥臂,將crond的郵件通知關(guān)閉:
將/etc/crontab和/etc/cron.d/0hourly里的MAILTO=root修改為MAILTO=""
crontab -e第一行增加一段MAILTO=""