Gunicorn ::从应用程序本身重新加载

Rez*_*adi 7 django gunicorn

我最近从我的应用程序创建了一个版本控制页面来管理部署过程.

(是的,我知道,github + hooks比从零改写更好.但是我们在伊朗,我们心爱的政府阻止了与国外的所有ssh连接.:(()

页面中有一个合并+重新加载操作.合并与其他部分一样,但重新加载部分失败,没有任何消息.我已经为kill命令添加了sudo row,并且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)
Run Code Online (Sandbox Code Playgroud)

ber*_*rto 1

我的猜测是重新启动不起作用,因为调用重新加载的进程被终止。也许尝试守护调用重新加载后退出的子进程?看看这个帖子:

python 的生成过程