Найти - Пользователи
Полная версия: Fabric. Убить процесс на удаленной машине.
Начало » Python для новичков » Fabric. Убить процесс на удаленной машине.
1
darksmoke
Добрый день
Я новичек в питоне. Мне нужно написать скрипт, Удаляющий процесс на удаленной машине(ах).
Есть скрипт, при его вызове, если все хорошо он возвращает слово pong, плохо, возвращает Node not responding to pings.
Я написал скрипт
from fabric.api import *
from StringIO import StringIO
env.user = 'sybase'
def check():
    output=run('cd /opt/data/rtc_mod_purse/bin/ && ./rtc_mod_purse ping')
    if "output" == 'pong':
        print('             [OK]')
    else:
        #run("ps aux | grep epmd")
        print('d')
    
Если скрипт возвращает pong, то все ок, выводится на экран .
А если скрипт не возращает ОК, то пишет
fab -H 10.61.128.30 check
Executing task ‘check’
run: cd /opt/data/rtc_mod_purse/bin/ && ./rtc_mod_purse ping
out: Node ‘rtc_mod_purse@10.61.128.30’ not responding to pings.
out:


Fatal error: run() received nonzero return code 1 while executing!

Requested: cd /opt/data/rtc_mod_purse/bin/ && ./rtc_mod_purse ping
Executed: /bin/bash -l -c “cd /opt/data/rtc_mod_purse/bin/ && ./rtc_mod_purse ping”

Aborting.
Disconnecting from 10.61.128.30… done.
Почему если pong не возвращается, то ничего не работает, почему?
FishHook
Видимо, вызов функции run('cd /opt/data/rtc_mod_purse/bin/ && ./rtc_mod_purse ping') вызывает исключение. Вам нужно перехватить исключение с помощью конструкции try..except и обработать эту ситуации в зависимости от логики вашей программы.
darksmoke
Спасибо, то что надо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB