人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CentOS5でbash.shで以下のコマンドを実行します。
while true; do ls -l foo.tar ; sleep 1 ; done
これを常に監視していて、以上終了したり、ゾンビになってしまったら
一回、プロセスをKillして、再度実行したいのですが
なにかいい方法ありますでしょうか?

●質問者: hopefully
●カテゴリ:就職・転職 コンピュータ
✍キーワード:bash Ls sh TAR コマンド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

方法はいくつかあって、


1.管理プロセス下で動作させる方法

- inittab に記述して、init プロセスに管理してもらう。

Manpage of INITTAB

action を respawn にすれば自動的に再起動します

- daemontools を使う

daemontools

プロセス管理のためのツール群です。

設定方法に癖はありますが、プロセスの起動制御やログの管理などトータルに扱えるのでお勧めです。


2.監視プロセスを別に起動する方法

echo $$ > /var/run/bash_sh.pid
while true; do ls -l foo.tar ; sleep 1 ; done

等としておけば bash_sh.pid にプロセスIDが記述されるので、

別スクリプトなどでそのプロセスが存在しているかを確認することができます。

◎質問者からの返答

これはいいですね。早速検討してみます。


2 ● ffmpeg
●35ポイント

http://cyberam.dip.jp/linux_command/shellscript.html

◎質問者からの返答

シェルの参考文献ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ