A.2. ウェイクアップ (Wake-ups)


多くのアプリケーションは、設定ファイルの変更を確認するためにスキャンします。多くの場合、スキャンは例えば毎分など、決まった間隔で実行されます。このスキャンが問題になる理由は、スキャンにより回転が停止しているディスクをウェイクアップさせるためです。最善策は、適切な間隔、適切な確認方法を見つけるか、inotify で変更を確認して、イベントに対応することです。inotify はファイルまたはディレクトリで様々な変更を確認できます。
例を示します。
int fd;
fd = inotify_init();
int wd;
/* checking modification of a file - writing into */
wd = inotify_add_watch(fd, "./myConfig", IN_MODIFY);
if (wd < 0) {
  inotify_cant_be_used();
  switching_back_to_previous_checking();
}
...
fd_set rdfs;
struct timeval tv;
int retval;
FD_ZERO(&rdfs);
FD_SET(0, &rdfs);

tv.tv_sec = 5;
value = select(1, &rdfs, NULL, NULL, &tv);
if (value == -1)
  perror(select);
else {
  do_some_stuff();
}
...
このアプローチの優れている点は、確認できる方法が多岐に渡っている点です。
主な制限は、1 つのシステムでは利用できる監視の数が限られていることです。この数は /proc/sys/fs/inotify/max_user_watches から取得できます。この数値を変更することは可能ですが、推薦されません。さらに、inotify が失敗すると、コードは別の確認方法にフォールバックする必要がありますが、これは通常ソースコードの #if #define が多く発生することを意味しています。
inotify についての詳細情報は、inotify man ページを参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.