Aktivace programu

Alexandr Malusek malusek na hroch.ujf.cas.cz
Pondělí Listopad 30 18:46:04 CET 1998


dabel na bsdi.grendel.cz (Daniel Teufel) writes:

> Jak zajistit aby se po jakekoli zmene souboru "text.txt" spustil
> program "program"?

V nekterych Unixech existuji navrhy i implementace tzv. watch dogs,
pomoci kterych je v jadre monitorovano, zda u nekterych souboru doslo
ke zmene, a pokud ano, neco se provede. Tohle ale (pokud vim) pod
Linuxem nenajdete.

Jako nejjednodussi mi pripada periodicky sledovat mtime (= last
modification time) souboru "text.txt" a zmeni-li se, spustit onen
program. Pokud ale nekdo bude po kazdem zapisu do text.txt zakerne
obnovavat puvodni mtime, pak s velkou pravdepodobnosti nic nepoznate.

V Perlu prilis neprogramuji, takze znalci prominou nebo opravi,
ale muze to vypadat napr. takto:

#!/usr/bin/perl

require "stat.pl";

&Stat('text.txt');
$org_mtime = $st_mtime;

do {
    sleep(1);
    &Stat('text.txt');
} while ($org_mtime == $st_mtime);

exec '/bin/echo', 'Zmena!';

Jestli ma jit o fork-nuti a exec-nuti, nebo jen o exec-nuti, ... si
upravite sam.

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux