whileを使っていようといまいとプログラムが落ちる可能性は常にあるので、落ちたらやばいものは別途監視して、上げなおす手段やリカバリは確実に必要になります。
また、どのような手段でも待ち受けを行っている限りどこかでwhile相当のことはする必要があります。
ただwhileのループ処理1回が終わった後にまたinotifywaitを実行している、ということが不安の原因でしたら、inotifywaitの-mオプションを使ってみては如何でしょう。
-mオプションがないとinotifywaitは一度イベントを感知するとそれを通知して終了しますが、-mオプションをつけるとイベントを何度でも通知し続けます。
以下のような感じになるでしょうか。
bash
1inotifywait -e OPEN -m -r (監視対象ディレクトリ) | while read event
2do
3 (実行したいコマンド)
4done
これは一応whileなしでも書くことができます。
bash
1inotifywait -e OPEN -m -r (監視対象ディレクトリ) | xargs -n 1 -I @ (実行したいコマンド)
なお、inotify-toolsを使用する際のよくある失敗として、inotifyの監視可能ファイル数の上限を超えてしまった、というのがあります。
(初期設定は8192とかなのですごく少ないです)
カーネルパラメタの「fs.inotify.max_user_watches」に上限値を設定することができます。
http://kk6.hateblo.jp/entry/2012/09/20/Ubuntu_server%E3%81%AB%E5%85%A5%E3%82%8C%E3%81%A6%E3%82%8BDropbox%E3%81%8C%E5%A4%89%E3%81%AA%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E5%87%BA%E3%81%99%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%81%A3