• 締切済み

pythonスクリプトの停止方法について

debianでpythonを最近始めました。スクリプトの起動は sudo python 何々.py (私のスクリプトはスドが無いと、たまたまなのでしょうかエラー続出して止まるので) で出来ますが、その時点で端末のプロンプトは無くなってしまうスクリプトみたいです。 いつもは停止はキィ~ボードでコントロールを押しながらシーを押して停止しています(プロンプトが再出します)。 他にもプロセスアイデーを使って停止もできるようですが、その時は別に端末を開いて入力していますが、プロセスアイデーはスクリプトを実行させる度に変わってしまうみたいで、毎回これを使うのは先にプロセスアイデーを調べなければならず大変不便です。 コントロールとシーやキルスペースプロセスアイデー以外での停止方法は無いのでしょうか? 検索サイトで色々調べても起動の方法は見つけられても、停止の方法は見つけられませんでした。または検索方法に問題ありで的を外している? ご存知の方是非教えて頂ければと思います。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

phyton側は、WEBサーバーを起動するためだけのスクリプトですよね? 起動し終わったら、そのスクリプトは終了するから、window が閉じるのでしょう。 WEBサーバーアプリに対するstopコマンドを記述したphytonスクリプトでないと停止できないと思います。起動スクリプトは起動コマンドしか記述してないだろうから。 誰かの作ったシステムなら、WEBサーバーアプリ stop用のphytonスクリプトも別に用意されているかもしれない。 それか、WEBサーバーアプリに直接stopなりshutdownなり行う事になると思う。 まずは、WEBサーバーアプリのstop コマンドを調べるのが早道でしょう。

すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

sudoが必要、ってどんなスクリプトなのですか? もっと具体的なものが無いと、psでID確認→kill くらいしか答えようがありません。 例えば、 GUIのプログラムなら、「終了ボタン」を付けたり、全部の窓が閉じたら終了、という処理を入れたりしたプログラムを作ります。 そのスクリプト自体がサーバー等になっている場合、バックグラウンドに移行してプロンプトへ戻ってくるように作られているのかもしれません (sudoが必要、ということで、このようなものの可能性があります) このタイプだと、「バックグラウンドで動作中のスクリプトを終了させるコマンド」が用意されていることがあります # python script.py STOP 等と、「stop」という引数を付けて実行する、とか

Qimooh
質問者

補足

説明頂き有難う御座います。 やはりスクリプトを止めるには簡単に「はいこれ」って訳には行かないみたいですね。起動は簡単ですけど。 さすがご察しの通りです。 pythonのスクリプトでFLASKをインポートしてWEBサーバを動かしています。なので起動するとプロンプトが消えます。 すいませんFLASKがバックグラウンドで何をしているかはわかりませんが、WEBサーバ自体はpythonのスクリプトの中で実行させています。一応OSブートと共に起動する様になっていはいるのですが、スクリプトを書き換えた際スクリプトを一旦停止して再起動したいのです。今は簡単な止め方がわからないのでsudo rebootを毎回しています。 killall python でも止めれるのでしょうけど、他にpythonが走っていたりするとそちらにも影響出そうなので使用するには気が引けます。 スクリプトの自動起動はinit.dの中にシェルスクリプトを置いています。 その中に起動・停止のコマンドラインは記載していますが、手動で起動の時は シェルスクリプト名 start で動きますが、停止のコマンドラインは分からないので適当に書いたため間違っているので、 シェルスクリプト名 stop を入力しても止まりません。とても悲しい状況です。 こんな感じです。よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A