Suchen

A.2. Wake-ups

download PDF
Viele Anwendungen überprüfen Konfigurationsdateien auf Änderungen. In vielen Fällen findet die Überprüfung zu einem festgesetzten Intervall statt, z.B. jede Minute. Dies kann ein Problem darstellen, da es Platten dazu zwingt, von Spindowns in den aktiven Modus zu wechseln. Die beste Lösung ist das Ermitteln eines guten Intervalls, ein guter Mechanismus zur Überprüfung oder das Prüfen von Änderungen mit inotify und Reaktionen auf Ereignisse. Inotify kann eine Vielfalt von Änderungen an einer Datei oder einem Verzeichnis überprüfen.
Zum Beispiel:
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();
}
...
Der Vorteil dieser Herangehensweise ist die Vielfalt der Checks, die Sie durchführen können.
Die Haupt-Beschränkung ist, dass nur eine begrenzte Anzahl von Watches auf einem System zur Verfügung stehen. Die Anzahl kann unter /proc/sys/fs/inotify/max_user_watches abgerufen werden und obwohl sie geändert werden kann, wird dies nicht empfohlen. Darüber hinaus, falls inotify fehlschlägt, muss der Code auf eine andere Check-Methode zurückgreifen, was üblicherweise bedeutet, dass #if #define oft im Quellcode vorkommt.
Werfen Sie einen Blick auf die inotify-Handbuchseite für weitere Informationen zu inotify.
Red Hat logoGithubRedditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

© 2024 Red Hat, Inc.