Bagaimana cara menghentikan uwsgi ketika tidak ada pidfile di konfigurasi?

14

Saya baru saja menginstal uwsgioleh pip install uwsgidalam env virtual. Dalam file "ini" yang saya gunakan:

socket = 127.0.0.1:3000
# no pidfile option

Dan lari uwsgi --ini config.ini

Tetapi bagaimana cara menghentikan instance uwsgi ini?
uwsgi --stop ...ingin file pid. Saya tidak bisa menggunakan alamat:

open("127.0.0.1:3000"): No such file or directory [core/io.c line 505]

Dan jika membunuh - uwsgi hanya respawn.

Sergey
sumber

Jawaban:

16
ps ax | grep uwsgi
15005 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini
15006 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini
15007 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini

killall -s INT /ve/path/bin/uwsgi
Sergey
sumber
6
Jika tidak punya killall, Anda juga bisasudo pkill -f uwsgi -9
Zachary Blackwood
4

Ini adalah fitur yang diketahui bahwa Anda tidak dapat menghentikan uwsgi hanya dengan membunuh. Peluru kedua: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

Jika uWSGI 2.1, secara default, mengirim sinyal SIGTERM ke uWSGI berarti "memuat ulang secara brutal tumpukan" sementara konvensi adalah untuk mematikan aplikasi pada SIGTERM. Untuk mematikan uWSGI, gunakan SIGINT atau SIGQUIT. Jika Anda benar-benar tidak dapat hidup dengan uWSGI yang tidak sopan terhadap SIGTERM, tentu saja aktifkan opsi mati-pada-istilah. Untungnya, pilihan buruk ini telah diperbaiki di uWSGI 2.1

Rankinstein
sumber
2

Mirip dengan jawaban yang paling atas, di Ubuntu atau Debian cukup Anda lakukan sudo killall -9 uwsgi. Padahal aku memang ingin tahu apakah uwsgi memberi cara untuk berhenti sendiri.

waldronluo
sumber