whileループシェルスクリプト[閉じる]

whileループシェルスクリプト[閉じる]

私はwhileループを使用し、sleepコマンドを保持して60秒ごとにスクリプトを実行し、出力を別のファイルにリダイレクトするLinux(bash)シェルスクリプトを作成しました。数時間後にスクリプトを停止しましたが、実行は停止しませんでした。まだ実行中のスクリプトを削除し、出力ファイルが60秒ごとに更新されました。 Linuxで実行されているプロセスでsleepコマンドを表示できます。 kill -9 PIDコマンドを使用して休止PIDを終了してみました。役に立たない。私は本番サーバーにいます。誰でも助けることができますか?スクリプトの実行をどのように停止するのですか?

ベストアンサー1

このsleepコマンドはスクリプトによって呼び出されます。コマンドが終了すると、sleepスクリプトは次のコマンドに進みます。たとえば、コマンドの親pid(PPID)を確認する必要がありますsleepps次に、その親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

おすすめ記事