質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1926閲覧

inotify-toolsについて

ark

総合スコア13

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2016/12/12 08:03

編集2016/12/19 02:21

###前提・実現したいこと

inotify-toolsで、ファイルが読み込まれた場合、アプリケーションを起動する(whileを使わず)。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yunano

2016/12/12 11:16

なぜwhileを使いたくないのか教えて頂けますでしょうか。
ark

2016/12/13 02:33 編集

ご質問ありがとうございます。 whileでも良いのですが、whileの場合、ループが止まってしまった際の対策を考えなければならないからです。whileを使わない方法があれば、そちらを使いたい思っています。
ark

2016/12/13 02:32 編集

guest

回答1

0

ベストアンサー

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

投稿2016/12/13 03:31

yunano

総合スコア841

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問