inotifyt-toolsのinotifywaitユーティリティを使用してディレクトリを監視するシェルスクリプトを作成しました。スクリプトがバックグラウンドで実行され続けたいのですが、必要に応じて停止することもできます。
引き続き実行するには、while true
次のように使用しました。
while true;
do #a set of commands that use the inotifywait utility
end
ファイルとして保存して/bin
実行可能にしました。バックグラウンドで実行するためにnohup <script-name> &
端末を使用して閉じました。
このスクリプトを停止する方法がわかりません。私は答えを見たここそして非常に密接に関連する質問ここ。
アップデート1: 以下の@InfectedRootの答えに基づいて、次の戦略を使用して問題を解決できました。初めて使用
ps -aux | grep script_name
sudo kill -9 <pid>
プロセスを終了するために使用されます。その後、返されたIDを再pgrep inotifywait
利用する必要がありました。sudo kill -9 <pid>
これはうまくいきますが、混乱したアプローチだと思い、より良い答えを探しています。
アップデート2: 回答には以下が含まれます2つのプロセスを終了。コマンドラインからスクリプトを実行すると2つのプロセスが開始されるため、これは重要です。スクリプト自体2、inotifyプロセス。
ベストアンサー1
コマンドを改善、使用、killall
結合するには、次のようにします。
ps -aux | grep script_name
killall script_name inotifywait
または、1行ですべて実行してください。
killall `ps -aux | grep script_name | grep -v grep | awk '{ print $1 }'` && killall inotifywait