2012-01-28 31 views
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) 

回答

1

猜猜我的头的顶部是重启不工作,因为进程调用的重载被杀害。也许尝试守护一个在调用reload之后退出的子进程?看看这篇文章:

spawning process from python

相关问题