Burada tamamen deliriyorum. Python Flask framework'u kullanarak bir web sitesi geliştiriyorum ve bu öğleden sonra Linux box'ım çılgın bir adam gibi davranıyor. Açıklamama izin ver.Sonlandırılan program (Flask) STDOUT'a çıkış göndermeyi sürdürüyor mu?
Ben Bir Ubuntu 14.04 sunucuda benim Matara web sitesi var. Normalde bir virtualenv kullanarak ./run.py
dosyasını kullanarak çalıştırın. Bugün bazı paketler yükledim ve sonunda tekrar temiz bir çevre istediğime karar verdim. beklendiği gibi
$ 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
Bunların hepsi hemen hemen: a bir milyon kez yaptığı gibi, Yani benim venv
klasörü silindi ve tekrar yarattı. Ardından tarayıcımla devam edip web sitemi yüklerim (daha önce milyon kez yaptığım gibi). Tarayıcı çok uzun bir süre yükler, ancak hiçbir şey yüklenmez. Tarayıcı konsolunda hiç bir bağlantı açıklığı göremiyorum bile.
Sonra terminali kontrol ve hiçbir şey ya oluyor bakın. Bu yüzden bir CTRL + C kullanarak dev sunucusunu durdurmak ve (beklendiği gibi) aşağıdaki çıktıyı almak:
$ 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 :::* -
yüzden karar:
^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
yüzden açık herhangi bir ağ bağlantılarını kontrol
kill 6127
kullanarak port 5000 üzerindeki python işlemini sonlandırın. Sonra ne olur sadece beni sersemletir. komutu (hiçbir hata alıyorum) "kabul" alır, ama sonra tarayıcı aniden web sitesine yükler ve terminal çıkışı günlükleri başlar bkz:
(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.
Ve bundan hiç bir şey anlamıyorum. Ben CTRL + C kullanarak dev-sunucu durdu ve (netstat -tulpn
ve kill 6127
) arasında iki komutları bulmuştun da çıktı alabilirsiniz.
Sonra tekrar bana başlangıç çizgisini aldığı, birkaç kez butonu tıklayın ve ardından istenilen komutları çalıştırabilirsiniz:
(venv) $
(venv) $
(venv) $ pwd
/home/kramer65/mysite
(venv) $
ve ben tarayıcıda web sitesini yeniden ne zaman basitçe tekrar çıktı almak aynı terminal penceresi. Komutlarım, komutlarımın herhangi bir çıktısı ve Flask dev-sunucusu günlükleri, hepsi aynı terminal penceresinde çıktılanır.
Sunucuyu yeniden başlatmayı denedim, tüm web sitesi kodlarını kaldırarak ve virtualenv'i tekrar kaldırıp tekrar yükledim ve yeni bir kullanıcı oluşturdum ve orada her şeyi yükledim, ancak aynı sonucu tekrar tekrar alıyorum.
şey
bu sonucu elde NEDEN bilmiyorum olmasıdır. Flask yüzünden, virtualenv yüzünden, ağdaki bazı tuhaf hatalar yüzünden, bash ve hatta başka bir şey yüzünden mi ?!Ve en önemlisi, ben bu çözebilir nasıl hiçbir fikrim yok. Herhangi bir fikri olan var mı? Burada saçımı çekerek olduğum için tüm ipuçları, bekliyoruz ..
[DÜZENLE] aşağıdaki sonuçlarla birlikte ben $ ps -eaf | grep python
ran
:
$ ps -eaf | grep python
immotest 1489 1444 0 14:33 pts/1 00:00:00 venv/bin/python ./run.py
immotest 1497 1489 1 14:33 pts/1 00:00:00 /home/kramer65/mysite/venv/bin/python ./run.py
immohie+ 1510 1374 0 14:34 pts/0 00:00:00 grep --color=auto python
Bir ps -eaf çalıştırırsanız | grep python, netstat çıktısından başka bir şey göstermiyor mu? – lapinkoira
@lapinkoira - Gerçekten ilginç bir şey yok. Sonucu sorunun sonuna ekledim. Herhangi bir fikir? – kramer65
run.py kodunu kontrol etmeliyim – lapinkoira