[英]uWSGI Emperor does not reload Vassal by touching the .ini file
我有多個 uWSGI vassals,都由 uwsgi 皇帝監控。 我更新了我的應用程序 (Django) 的代碼,我希望皇帝對其中一個封臣執行一次干凈的重新加載。 要做到這一點,我
touch vassal-foo.ini
在日志中,我看到[emperor] reload the uwsgi instance vassal-foo.ini
。 這聽起來很有希望,但該應用程序並未重新加載。 它繼續運行舊版本。 檢查進程(PID)啟動時間,確實沒有重啟。
任何提示可能導致這種情況的原因? 一些可能不常見的事情:
initctl
下運行kill -9
使 vassal 觸發正確的重新加載(顯然)threading.Thread(target).start()
)中有一個輔助線程,運行daemon=True
我嘗試過但沒有奏效的事情:
threading.Thread(target).start()
)touch --no-dereference vassal-foo.ini
--emperor-nofollow
開始皇帝vassal-foo.ini:
master = false
processes = 1
thunder-lock = true
enable-threads = true
socket = /tmp/%n.sock
chmod-socket = 666
vacuum = true
皇帝:
exec /tmp/uwsgi --emperor /tmp/configs/uwsgi/ --die-on-term --uid me --gid me --logto /tmp/logs/uwsgi-emperor.log
uWSGI 版本
$ uwsgi --version
2.0.17
問題是你的 vassal 沒有在主模式下運行。
uwsgi 重新加載 a 的所有方式都需要主進程。
在皇帝模式下,當你觸摸 ini 時,皇帝會向 vassal 發出一聲嘆息,並在日志中記錄 vassal 正在重新加載。 但是如果 vassal 沒有主人,它就會忽略 sighup。 所以這就是為什么您在日志中看到重新加載但沒有發生任何事情的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.