Fabric kill процесс 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. Если процесс пушки не запущен, я просто хочу запустить процесс пушки.

Как я могу это сделать ? Нужна помощь. Спасибо


person varad    schedule 09.10.2015    source источник


Ответы (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