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