7
我最近從我的應用程序創建了一個版本控制頁面來管理部署過程。Gunicorn ::從應用程序本身重新加載
(是的,我知道,GitHub的+掛鉤是不是從零改寫更好,但我們是在伊朗和我們敬愛的政府已經封鎖了所有的SSH連接到該國以外:(()
有在頁面中是一個merge + reload操作,merge與其他部分一樣工作,但是reload部分在沒有任何消息的情況下失敗,我爲kill命令添加了sudo行,並且worker進程的用戶擁有足夠的權限,我甚至執行了代碼形式爲django shell,並重新載入進程。
接收信號是否有任何限制,比如工人無法重新加載主機?
下面是相關代碼:
def command(x):
return str(Popen(x.split(' '), stdout=PIPE).communicate()[0])
pid = open(PATH + "/logs/gunicorn.pid").readline().strip()
cmd = "sudo kill -HUP %s" % pid
content += command(cmd)