72

だから私はd3を学ぼうとしています、そしてwikiはそれを提案し ました

例をローカルで表示するには、ローカル Web サーバーが必要です。どの Web サーバーも機能します。たとえば、Python の組み込みサーバーを実行できます。

python -m SimpleHTTPServer 8888 &

素晴らしい...サーバーを実行しているのは今だけです...しかし、ある時点で、おそらくそれを再度シャットダウンする必要があると思います。

を使用するよりもシャットダウンする良い方法はありkill <pid>ますか? それは、小さな仕事にとっては一種の大きなハンマーのように思えます。

(Mac OS 10.6.8 (Snow Leopard) を実行しています)

FWIW:ctrl+c約 10 行のトレースバックが表示され、中断されたことを訴えます。

kill -3 <pid>別のウィンドウに「Python が予期せず終了しました」という Finder の警告が表示されます。

デフォルトのkill <pid>kill -15 <pid>は、比較的クリーン (かつシンプル) です。

4

9 に答える 9

44

プロセスにシグナルを送信しているだけです。killそれらの信号を送信するコマンドです。

キーボードコマンドCtrl+Cは、SIGINTをkill -9送信し、SIGKILLをkill -15送信し、SIGTERMを送信します。

サーバーを終了するためにサーバーにどのような信号を送信しますか?

于 2012-09-28T20:56:33.247 に答える
37

でサーバーを起動した場合

python -m SimpleHTTPServer 8888 

その後、ctrl + c を押してサーバーをダウンさせることができます。

しかし、サーバーを起動した場合

python -m SimpleHTTPServer 8888 &

また

python -m SimpleHTTPServer 8888 & disown

プロセスを強制終了するには、最初にリストを表示する必要があります。

コマンドを実行

ps

また

ps aux | less

このような実行中のプロセスが表示されます..

PID TTY          TIME CMD
7247 pts/3     00:00:00 python
7360 pts/3     00:00:00 ps
23606 pts/3    00:00:00 bash

ここから PID を取得できます。このコマンドを実行してそのプロセスを強制終了します。

kill -9 7247

ここで 7247 は Python ID です。

また、何らかの理由でポートがまだ開いている場合は、このコマンドでポートをシャットダウンできます

fuser -k 8888/tcp

ここで 8888 は、python によって開かれた tcp ポートです。

今それが明確であることを願っています。

于 2015-07-10T06:52:08.630 に答える
14

または、単に行うことができますkill %1。これにより、バックグラウンドに置かれた最初のジョブが強制終了されます

于 2012-09-28T21:18:21.640 に答える
12

シャットダウンがあることが判明しましたが、これは別のスレッドから開始する必要があります。

このソリューションは私のために働いた: https://stackoverflow.com/a/22533929/573216

于 2015-01-17T16:06:36.170 に答える
3

やり過ぎのように思えますが、スーパーバイザーを使用して simpleHttpserver を開始および停止し、それをサービスとして完全に管理できます。

または、提案されているようにフォアグラウンドで実行し、で強制終了しCtrlCます。

于 2012-09-28T20:53:49.133 に答える
0

一度ヒットCtrlCして(トレースバックを待つ)、CtrlCもう一度ヒットするとうまくいきました:)

于 2015-03-17T16:26:12.067 に答える
0

ここに別の解決策があります。

このコマンドを使用してサーバーを起動したとします-

python3 -m http.server 7800

そのプロセスを強制終了するには -

pkill -9 -f  'python3 -m http.server 7800

それでおしまい。

于 2021-04-26T07:58:28.980 に答える