清除信號量隊列致使zabbix自動關閉

前幾天在海外UCloud機器上部署了一套zabbix proxy和zabbix agentd,但是次日一大早就收到郵件說zabbix_proxy掛掉了,上去查一下發現兩臺機器中的一臺的proxy和agentd都掛了,而另外一臺沒事,再查一下log日誌:html

zabbix_agentd [12977]: [file:'cpustat.c',line:235] lock failed: [22] Invalid argument
 12976:20150305:022001.966 One child process died (PID:12977,exitcode/signal:255). Exiting ...
 12976:20150305:022003.967 Zabbix Agent stopped. Zabbix 2.0.13 (revision 48919).
 
zabbix_proxy [12970]: [file:'selfmon.c',line:341] lock failed: [22] Invalid argument
zabbix_proxy [12972]: [file:'selfmon.c',line:341] lock failed: [22] Invalid argument
zabbix_proxy [12973]: [file:'selfmon.c',line:341] lock failed: [22] Invalid argument
 12951:20150305:022001.362 One child process died (PID:12970,exitcode/signal:255). Exiting ...
 12951:20150305:022003.365 syncing history data...
zabbix_proxy [12951]: [file:'dbcache.c',line:2196] lock failed: [22] Invalid argument

 第一感受就是crontab跑了一個什麼腳本,刪除了啥東西致使的,果不其然,的確是刪除了信號量致使的(關於信號量的介紹參看大牛博客 ipcs介紹 ),刪除腳本以下:spa

#!/bin/sh
for semid in `ipcs -s | cut -f2 -d" "`
do
    ipcrm -s $semid
done

這麼粗暴的刪除,不出事纔怪呢,加個刪除條件:日誌

#!/bin/sh
for semid in `ipcs -s | grep -v zabbix | cut -f2 -d" "`
do
    ipcrm -s $semid
done

再跑一下腳本,沒問題啦 ^_^code

相關文章
相關標籤/搜索