Saya sedang menulis skrip bash untuk digunakan inotifywait
untuk memantau direktori dan memulai tindakan ketika perubahan terdeteksi. Sesuatu seperti:
inotifywait -m ... | while read f; do something; done
Karena inotifywait
tidak berhenti dengan sendirinya, skrip ini tidak akan berhenti.
Jadi rencana saya adalah untuk mendapatkan PID dari proses inotifywait, menyimpannya ke file dan memiliki proses lain untuk membunuhnya nanti, katakan seperti:
inotifywait -m ... | { echo ??PID?? > pid-file; while ... }
Tapi saya tidak tahu bagaimana cara mendapatkan PID. Apakah ada cara sederhana untuk mencapai ini? Cara lain adalah dengan menyimpan PID dari script-shell $$
ke file dan membunuh seluruh script-shell tapi saya ingin melakukan pembersihan setelah loop sementara.
Saya sudah mencoba menggunakan coproc
dan saya pikir ini akan berhasil tetapi sepertinya lebih rumit daripada yang diperlukan.
pgrep inotifywait
. Itu akan memberi Anda PID, untuk membunuh pkill inotifwait
,.
grep -v grep
, sebaliknya ps -ef | grep [p]rocessname...
akan melakukan hal yang sama.
-f
saklar jika Anda perlu mencocokkan dengan lebih dari nama yang dapat dieksekusi.