GNU/Linux >> Znalost Linux >  >> Linux

Restartujte proces při změně souboru v Linuxu

Ano, adresář můžete sledovat pomocí inotify pomocí inotifywait nebo inotifywatch z nástrojů inotify.

inotifywait po zjištění události se ukončí. Předejte možnost -r rekurzivně sledovat adresáře. Příklad:inotifywait -r mydirectory .

Můžete také určit událost, kterou chcete sledovat, místo sledování všech událostí. Chcete-li čekat pouze na změny obsahu souboru nebo adresáře, použijte volbu -e modify .


Toto je vylepšení oproti odpovědi uvedené v otázce. Když jeden přeruší skript, proces běhu by měl být ukončen.

#!/bin/sh

sigint_handler()
{
  kill $PID
  exit
}

trap sigint_handler SIGINT

while true; do
  [email protected] &
  PID=$!
  inotifywait -e modify -e move -e create -e delete -e attrib -r `pwd`
  kill $PID
done

Linux
  1. Jak zobrazit nebo změnit ACL v souborech Linux

  2. UNIX / Linux :Jak změnit vhodnost (prioritu) procesu

  3. Změnit první bajt souboru v Linuxu?

  1. Linux – všechno je soubor?

  2. Jak restartovat (nebo resetovat) běžící proces v Linuxu?

  3. Změňte výchozí server DNS v Arch Linuxu

  1. Ubuntu – Linux – Čas změny souboru versus čas úpravy?

  2. 5 příkladů dotykových příkazů Linuxu (jak změnit časové razítko souboru)

  3. Změňte název procesu v Linuxu