- ベストアンサー
shの停止方法
こんばんわ。 shの停止方法がわからなくて困っています。 sh(qqq.sh)の内容は ******************* while true ; do sh xxx.sh sleep 1 done ******************* と、xxx.shを1秒ごとに起動するようにしています。 ですので、killコマンドでは1秒ごとに起動しているために早すぎてプロセスを停止できませんでした。 shのコマンドは #sh qqq.sh & で常駐するようにしました。 すごくこまっているのでご教授お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>killコマンドでは1秒ごとに起動しているために早すぎてプロセスを停止できませんでした。 これはどういうことでしょう?sleepの間隔とkillできるか否かに相関はないと思うのですが。。。 ps -ax | grep qqq.sh でqqq.shのプロセスIDを調べて、 kill プロセスID それでも死ななければ kill -KILL プロセスID です。
その他の回答 (3)
- notnot
- ベストアンサー率47% (4900/10358)
>1秒ごとにsleep1というプロセスが立ち上がっていたのでそれを止める方法が知りたかったのです。 sleep 1は放っておいても1秒後には止まりますので、コマンドを打っている間に止まってしまいます。 大元の、sh qqq.sh を止めれば次から次へとsleepやsh xxx.shが起動されることがなくなりますので、#2の方の書かれているようにしてkillするのが良いかと思います。 あるいは、jobsコマンドを打つと、 [1]+Running sh qqq.sh & のように表示されると思うので、その[ ]内の数字を使って、kill %1 としてもいいです。
>1秒ごとにsleep1というプロセスが立ち上がっていたのでそれを止める方法が知りたかったのです。 ps -ax | awk '/sleep/{print $1}' | xargs kill でどうでしょ?
- mendokusa
- ベストアンサー率13% (359/2726)
親のプロセスを殺せばその内止まるのでは。しばらくは動いてるかもしれません。
補足
回答ありがとうございます。 えーっと私も確かにqqq.shのプロセスを止めてしまえばいいのではないかと思いましたが、ps axをかけたときに立ち上がっているプロセスがqqq.shではなくsleep1というようなプロセスになっていました。 なので1秒ごとにsleep1というプロセスが立ち上がっていたのでそれを止める方法が知りたかったのです。
補足
回答ありがとうございます。 えーっと私も確かにqqq.shのプロセスを止めてしまえばいいのではないかと思いましたが、ps axをかけたときに立ち上がっているプロセスがqqq.shではなくsleep1というようなプロセスになっていました。 なので1秒ごとにsleep1というプロセスが立ち上がっていたのでそれを止める方法が知りたかったのです。