• ベストアンサー

shの停止方法

こんばんわ。 shの停止方法がわからなくて困っています。 sh(qqq.sh)の内容は ******************* while true ; do sh xxx.sh sleep 1 done ******************* と、xxx.shを1秒ごとに起動するようにしています。 ですので、killコマンドでは1秒ごとに起動しているために早すぎてプロセスを停止できませんでした。 shのコマンドは #sh qqq.sh & で常駐するようにしました。 すごくこまっているのでご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#9431
noname#9431
回答No.2

>killコマンドでは1秒ごとに起動しているために早すぎてプロセスを停止できませんでした。 これはどういうことでしょう?sleepの間隔とkillできるか否かに相関はないと思うのですが。。。 ps -ax | grep qqq.sh でqqq.shのプロセスIDを調べて、 kill プロセスID それでも死ななければ kill -KILL プロセスID です。

jun2249
質問者

補足

回答ありがとうございます。 えーっと私も確かにqqq.shのプロセスを止めてしまえばいいのではないかと思いましたが、ps axをかけたときに立ち上がっているプロセスがqqq.shではなくsleep1というようなプロセスになっていました。 なので1秒ごとにsleep1というプロセスが立ち上がっていたのでそれを止める方法が知りたかったのです。

その他の回答 (3)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.4

>1秒ごとにsleep1というプロセスが立ち上がっていたのでそれを止める方法が知りたかったのです。 sleep 1は放っておいても1秒後には止まりますので、コマンドを打っている間に止まってしまいます。 大元の、sh qqq.sh を止めれば次から次へとsleepやsh xxx.shが起動されることがなくなりますので、#2の方の書かれているようにしてkillするのが良いかと思います。 あるいは、jobsコマンドを打つと、 [1]+Running sh qqq.sh & のように表示されると思うので、その[ ]内の数字を使って、kill %1 としてもいいです。

noname#9431
noname#9431
回答No.3

>1秒ごとにsleep1というプロセスが立ち上がっていたのでそれを止める方法が知りたかったのです。 ps -ax | awk '/sleep/{print $1}' | xargs kill でどうでしょ?

  • mendokusa
  • ベストアンサー率13% (359/2726)
回答No.1

親のプロセスを殺せばその内止まるのでは。しばらくは動いてるかもしれません。

jun2249
質問者

補足

回答ありがとうございます。 えーっと私も確かにqqq.shのプロセスを止めてしまえばいいのではないかと思いましたが、ps axをかけたときに立ち上がっているプロセスがqqq.shではなくsleep1というようなプロセスになっていました。 なので1秒ごとにsleep1というプロセスが立ち上がっていたのでそれを止める方法が知りたかったのです。

関連するQ&A