maczabbix

zabbix agentの停止スクリプトの不具合修正

かなり前にMacPortsでZabbix agentをインストールしました。
http://d.hatena.ne.jp/ksaito11/20100425
MacPortsでインストールしたZabbix agentに付属しているスクリプトは、startできますが、stopがエラーとなるのでstop/restartが動きません。
原因は、Macのawkのバージョンの違いなのでパッチを作成しました。

現象

stopやrestartをするとエラーになります。

$ sudo /opt/local/share/zabbix/zabbix_agentd.init restart
Password:
-n Shutting down zabbix_agentd
usage: kill [-s signal_name] pid ...
kill -l [exit_status]
kill -signal_name pid ...
kill -signal_number pid ...
rm: /var/tmp/zabbix_agentd.pid: No such file or directory
-n Starting zabbix_agentd
$

パッチ

下記のようにawkのif文の記載をgrepで代替えしました。
echoコマンドの-nオプションもサポートされていないので削除しました。
pidファイルもzabbix_agentd.confのパスに合わせて修正しました。

$ diff -u /tmp/zabbix_agentd.init /opt/local/share/zabbix/zabbix_agentd.init
--- /tmp/zabbix_agentd.init	2011-04-29 14:08:20.000000000 +0900
+++ /opt/local/share/zabbix/zabbix_agentd.init	2011-04-29 14:10:51.000000000 +0900
@@ -2,15 +2,15 @@
case "$1" in
start)
-        echo -n "Starting zabbix_agentd "
+        echo "Starting zabbix_agentd "
sudo -u zabbix /opt/local/sbin/zabbix/zabbix_agentd -c /opt/local/etc/zabbix/zabbix_agentd.conf
;;
stop)
-        echo -n "Shutting down zabbix_agentd"
-        pid=`ps axc|awk "{if (\\$5==\"zabbix_agent\") print \\$1}"`
+        echo "Shutting down zabbix_agentd"
+        pid=`ps axc | grep zabbix_agent |awk "{print \\$1}"`
/bin/kill $pid
-       rm /var/tmp/zabbix_agentd.pid
+       rm -rf /var/tmp/zabbix_agentd.pid
;;
restart)
$0 stop
$

動作確認

ちゃんと動くようになりました。

$ sudo /opt/local/share/zabbix/zabbix_agentd.init restart
Shutting down zabbix_agentd
Starting zabbix_agentd
$
タイトルとURLをコピーしました