Sto scrivendo uno script bash da utilizzare inotifywait
per monitorare una directory e dare il via alle azioni quando vengono rilevate modifiche. Qualcosa di simile a:
inotifywait -m ... | while read f; do something; done
Poiché inotifywait
non termina da solo, questo script non si arresterà.
Quindi il mio piano era di ottenere il PID del processo inotifywait, salvarlo in un file e fare in modo che un processo diverso lo uccidesse in seguito, ad esempio:
inotifywait -m ... | { echo ??PID?? > pid-file; while ... }
Ma non so come ottenere il PID. C'è un modo semplice per raggiungere questo obiettivo? Un altro modo è solo quello di salvare il PID dello shell-script $$
nel file e uccidere l'intero shell-script, ma volevo fare un po 'di pulizia dopo il ciclo while.
Ho provato a usare coproc
e penso che funzionerà ma sembra più complicazioni del necessario.
pgrep inotifywait
. Che vi darà il PID, per uccidere, pkill inotifwait
.
grep -v grep
, invece ps -ef | grep [p]rocessname...
farebbe lo stesso.
-f
interruttore se è necessario abbinare più nome del file eseguibile.