私はここで完全に狂っています。私はPython Flask frameworkを使ってウェブサイトを開発しています。そして、午後から私のLinuxボックスは狂った人のように行動しています。私に説明させてください。終了したプログラム(Flask)は出力をSTDOUTに送信し続けますか?
私はFlaskのウェブサイトをUbuntu 14.04サーバーに持っています。私は通常、virtualenvを使ってファイル./run.py
を使って実行します。今日私はいくつかのパッケージをインストールし、最終的にはきれいな環境をもう一度望んでいたと決めました。これは予想通り、すべてのほとんどである
$ virtualenv venv
$ . venv/bin/activate
(venv) $ pip install -r requirements.txt
# EVERYTHING INSTALLS WITHOUT ERRORS
(venv) $ ./run.py
/home/kramer65/mysite/venv/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:100: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
* Running on http://0.0.0.0:5000/
* Restarting with inotify reloader
* Debugger is active!
* Debugger pin code: 219-856-383
/home/kramer65/mysite/venv/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:100: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
:前に百万回を行ったように、だから、私はvenv
フォルダを削除して、もう一度それを作成しました。私は私のブラウザに行き、私のウェブサイトをロードします(私は何百万回も前と同じように)。ブラウザは非常に長い時間をロードしますが、何もロードされません。ブラウザコンソールでは、私は接続が全く開いていないと見ています。
次に、端末を確認して何も起こっていないことを確認します。だから私は(予想通り)CTRL + Cを使用してのdevのサーバーを停止し、次のような出力が得られます。
^CException in thread Thread-6:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/home/kramer65/mysite/venv/local/lib/python2.7/site-packages/watchdog/observers/inotify_buffer.py", line 59, in run
inotify_events = self._inotify.read_events()
File "/home/kramer65/mysite/venv/local/lib/python2.7/site-packages/watchdog/observers/inotify_c.py", line 296, in read_events
event_buffer = os.read(self._inotify_fd, event_buffer_size)
KeyboardInterrupt
だから私は開いているすべてのネットワーク接続をチェックアウト:
$ netstat -tulpn
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 6127/python
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 0.0.0.0:24675 0.0.0.0:* -
udp6 0 0 :::22996 :::* -
だから私はに決定しますkill 6127
を使用してポート5000上のPythonプロセスを終了します。その後、何が起きるのかがわかりません。コマンドは「受け入れられた」を取得(私はエラーを取得していない)、その後私は、ブラウザが突然ウェブサイトをロードし、端末は、ログの出力を開始参照してください。
(venv) $ kill 6127
(venv) $ 83.161.103.21 - - [2016-04-13 13:59:44] "GET/HTTP/1.1" 200 7334 0.045281
83.161.103.21 - - [2016-04-13 13:59:44] "GET/HTTP/1.1" 200 7334 0.062855
83.161.103.21 - - [2016-04-13 13:59:44] "GET/HTTP/1.1" 200 7334 0.080915
83.161.103.21 - - [2016-04-13 13:59:44] "GET/HTTP/1.1" 200 7334 0.099523
83.161.103.21 - - [2016-04-13 13:59:44] "GET/HTTP/1.1" 200 7334 0.118382
83.161.103.21 - - [2016-04-13 13:59:45] "GET /bower/bootstrap/dist/css/bootstrap.min.css?version=3.3.5 HTTP/1.1" 304 745 0.006047
83.161.103.21 - - [2016-04-13 13:59:45] "GET /bower/font-awesome/css/font-awesome.min.css?version=1448904482.0 HTTP/1.1" 304 745 0.003684
etc. etc.
そしてここから、私は何かを理解していません。私は、私がCTRL + Cを使用してdev-serverを停止し、その間に2つのコマンド(netstat -tulpn
とkill 6127
)を実行したと思っても、出力を取得します。
私は再び私に私のスタートラインを取得した、カップルの時間を入力し、任意のコマンドを実行して打つことができます。
(venv) $
(venv) $
(venv) $ pwd
/home/kramer65/mysite
(venv) $
と私は、ブラウザでWebサイトをリロードしたときに、私は単純に再び出力を得ます同じ端末ウィンドウ。私のコマンド、私のコマンドの出力、Flask dev-serverのログはすべて同じターミナルウィンドウに出力されます。
私はすべてのウェブサイトのコードを完全に削除し、virtualenvをもう一度削除してインストールすると、新しいユーザーを作成してそこにすべてをインストールしましたが、同じ結果が何度も繰り返されます。
私はこの結果を得る理由は分かりません。 Flaskのために、virtualenvのために、bashや他の何かのために、ネットワークの不思議なバグのためですか?
そして、最も重要なことは、私はこれをどのように解決できるか考えていません。誰も考えていますか?私はここに私の髪を引っ張っていますので、すべてのヒントは、歓迎されている。..
[EDIT]次の結果と私は$ ps -eaf | grep python
を走った
、:
ps -eaf |を実行すると、 grep pythonはnetstatの出力とは別に何かを表示していますか? – lapinkoira
@ lapinkoira - 本当に興味深いものはありません。私は質問の最後に結果を追加しました。何か案が? – kramer65
run.pyコードを確認する必要があります – lapinkoira