Estoy escribiendo un script bash para usar inotifywaitpara monitorear un directorio y comenzar acciones cuando se detectan cambios. Algo como:
inotifywait -m ... | while read f; do something; done
Como inotifywaitno termina por sí solo, este script no se detendrá.
Entonces, mi plan era obtener el PID del proceso inotifywait, guardarlo en un archivo y hacer que un proceso diferente lo elimine más tarde, digamos como:
inotifywait -m ... | { echo ??PID?? > pid-file; while ... }
Pero no sé cómo obtener el PID. ¿Hay una manera simple de lograr esto? Otra forma es simplemente guardar el PID del script de shell $$en el archivo y eliminar todo el script de shell, pero quería hacer un poco de limpieza después del ciclo while.
He intentado usar coprocy creo que funcionará, pero parece más complicación de la necesaria.
pgrep inotifywait. Eso le dará el PID, para matar, pkill inotifwait.
grep -v grep, en su lugar ps -ef | grep [p]rocessname...haría lo mismo.
-finterruptor si necesita hacer coincidir más nombres de ejecutables.