织物只有在它运行的时候杀死了gunicorn进程

时间:2015-10-09 06:17:02

标签: python django fabric gunicorn

我对织物很新。在我的结构文件中,我想重新启动gunicorn。为此,我首先杀死了枪支进程然后开始它..

看起来像:

def restart_gunicorn():
    run('ps ax|grep gunicorn')
    run('pkill gunicorn')
    run('gunicorn -b 0.0.0.0:8080 %(path)s/application/wsgi &' % env)

当我运行它时,它会在pkill gunicorn给出错误,因为在开始时我将不会运行任何gunicorn进程。因此,如果枪炮进程正在运行,那么我想要检查一下,然后才能杀死gunicorn。如果没有gunicorn进程正在运行我只想开始枪炮过程..

我该怎么做? 需要帮忙。谢谢

1 个答案:

答案 0 :(得分:0)

你可以添加settings(warn_only=True),只会给你一个警告,但执行不会失败:

def restart_gunicorn():
    run('ps ax|grep gunicorn')
    with settings(warn_only=True):
        run('pkill gunicorn')
    run('gunicorn -b 0.0.0.0:8080 %(path)s/application/wsgi &' % env)

有关settings上下文管理器的更多信息:http://docs.fabfile.org/en/1.10/api/core/context_managers.html#fabric.context_managers.settings