2016 04,15 17:15 |
|
うちのサーバで動いてる常駐型のシェルが、PIDファイルを、/tmp/配下に作成しており、
サーバを再起動しても、そのファイルが消えない
これにより、プロセス監視ツールが、そのファイルに記載されている
プロセスIDを読み取り、プロセスの起動の確認を行うけど、
実際は再起動前と異なるプロセスが、PIDに記載されているプロセスIDを割り当てられて、
監視ツールが勘違いを起こす事象がたびたび
そこで考えたのが、再起動時(もしくはシャットダウン時)に、/tmp/のファイルは消せないか?
色々調べていたら、tmpwatchコマンドを使用するという方法
しかし、主に時間での指定のような感じなので、これは使えない。
すると、
/etc/rc.d/rc.sysinitの中に、
# Clean up various /tmp bits
rm -f /tmp/.X*-lock /tmp/.lock.* /tmp/.gdm_socket /tmp/.s.PGSQL.*
rm -rf /tmp/.X*-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/hsperfdata_* \
/tmp/kde-* /tmp/ksocket-* /tmp/mc-* /tmp/mcop-* /tmp/orbit-* \
/tmp/scrollkeeper-* /tmp/ssh-* \
/dev/.in_sysinit
と記載がある
あまりやっていけないけど、ここにファイル名までを指定して削除させるのも
一つの手かと
でも、そもそもPIDって、どこに置くべきものなんだ?って疑問
調べてみたら、一般的にはpidファイルの置き場として
/var/run以下にPIDファイルを置くようにする。
すると、/etc/rc.sysinitがシステム起動時に消してくれるらしい。
http://boscono.hatenablog.com/entry/2014/02/19/203511
マジか・・・知らなかった
書き換えるのがめんどくせいなぁ~と思いつつ、
貴重な情報なので、ここに残す PR |
|
コメント |
コメント投稿 |
|
忍者ブログ [PR] |