IsProcessExist:process doesn't exist.[/var/run/apservd-eth0.pid]


Hack BBSでも話題になった /var/log/messages に
May 29 22:56:05 giga uart daemon[466]: >IsProcessExist:process doesn't exist.[/var/run/apservd-eth0.pid]
May 29 22:56:05 giga uart daemon[466]: exec [/etc/init.d/apservd restart]
が延々出力される件、私なりに対策してみた。

ppc_uartd がどこまでチェックしているか判らないが、 存在するプロセスの PID を /var/run/apservd-eth0.pid に 書いておけば良いはず。
プロセスが存在しなければ、/etc/init.d/apservd restart が呼ばれるので、 /etc/init.d/apservd に仕掛ける。
「存在するプロセス」として使うのは、ppc_uartd(笑)

[root@giga /root]# cat /etc/init.d/apservd
#!/bin/sh
pidof ppc_uartd > /var/run/apservd-eth0.pid
[root@giga /root]# chmod +x !$
chmod +x /etc/init.d/apservd
[root@giga /root]# !$
/etc/init.d/apservd
[root@giga /root]# cat /var/run/apservd-eth0.pid
466
[root@giga /root]# ps -aux |grep ppc_
root       466  0.0  0.4  1492  540 ?        S       22:49   0:00 /usr/sbin/ppc_
[root@giga /root]# rm /var/run/apservd-eth0.pid
rm: `/var/run/apservd-eth0.pid' を削除しますか(yes/no)? y
[root@giga /root]# tail -f /var/log/messages
	:
	:
May 29 23:15:41 giga uart daemon[466]: >IsProcessExist:process doesn't exist.[/var/run/apservd-eth0.pid]
May 29 23:15:41 giga uart daemon[466]: exec [/etc/init.d/apservd restart]

[root@giga /root]# cat /var/run/apservd-eth0.pid
466
[root@giga /root]#



聴く日経(2)メモリスティック活用
ハックの記録
LinkStation/玄箱 をハックしよう

内向きサーバのハックキット 2.0 化

Copyright (C) 2006 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市