私はwhileループを使用し、sleepコマンドを保持して60秒ごとにスクリプトを実行し、出力を別のファイルにリダイレクトするLinux(bash)シェルスクリプトを作成しました。数時間後にスクリプトを停止しましたが、実行は停止しませんでした。まだ実行中のスクリプトを削除し、出力ファイルが60秒ごとに更新されました。 Linuxで実行されているプロセスでsleepコマンドを表示できます。 kill -9 PIDコマンドを使用して休止PIDを終了してみました。役に立たない。私は本番サーバーにいます。誰でも助けることができますか?スクリプトの実行をどのように停止するのですか?
ベストアンサー1
このsleep
コマンドはスクリプトによって呼び出されます。コマンドが終了すると、sleep
スクリプトは次のコマンドに進みます。たとえば、コマンドの親pid(PPID)を確認する必要がありますsleep
。ps
次に、その親PID(PPID)を見つけて、そのPIDに属するプロセスを終了します。
ps -ef |(head -1; grep sleep)
UID PID PPID C STIME TTY TIME CMD
lambert 4062 4041 0 08:47 pts/3 00:00:00 sleep 5
ps -p 4041
PID TTY TIME CMD
4041 pts/3 00:00:00 myscript.sh
kill 4041