fabric kill gunicorn процес само ако работи

Аз съм много нов в тъканите. В моя файл за тъкани искам да рестартирам 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. Ако процесът gunicorn не се изпълнява, просто искам да стартирам процеса gunicorn..

Как мога да направя това? Нужда от помощ. Благодаря ти


person varad    schedule 09.10.2015    source източник
comment
Възможен дубликат на stackoverflow.com/questions/16689873/   -  person DexTer    schedule 09.10.2015


Отговори (1)


Можете просто да добавите 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

person Bogdan Iulian Bursuc    schedule 09.10.2015