Sto scrivendo uno script bash da utilizzare inotifywaitper 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é inotifywaitnon 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 coproce 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.
-finterruttore se è necessario abbinare più nome del file eseguibile.