Não consigo fazer verificação remota
Hoje, 13:47 PM 
Boa tarde, pessoal! 
  
Precisando de uma ajudinha. É o seguinte: 
  
1º) Implementar uma solução onde seja possível verificar remotamente o status de uma aplicação. Caso a aplicação não esteja operacional, algum tipo de aviso deverá ser enviado para o computador que a está monitorando. 
  
2º) Tentar reiniciar o programa monitorado, caso o mesmo não esteja respondendo. Se tentar reiniciar o programa três vezes sem sucesso, imprimir uma mensagem na tela. 
  
Parte do enunciado o código já está executando, mas ainda não consigo fazer a " verificação remota". Por favor, poderiam me ajudar. Obrigada desde agora. 
  
Segue o código: 
  
import socket, commands, time, os
 
class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
 
 
def trabalhando(ip, port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    result = sock.connect_ex((ip, port))
    if result == 0:
        return True
    return False
 
def reiniciando(contador=0):
    contador = contador
    print "Tentativa %s. Levantando servico." % (contador + 1)
    time.sleep(1)
    commands.getoutput("service apache2 start")
    if not trabalhando("127.0.0.1", 80):
        if contador < 2:
            return reiniciando(contador+1)
        else:
            print "não foi possivel levantar o servidor! "+bcolors.FAIL+"[FAIL]"+bcolors.ENDC
            return False
    else:
        print "O servico foi levantado com sucesso! "+bcolors.OKGREEN+"[OK]"+bcolors.ENDC
        time.sleep(2)
        return True
 
while True:
    time.sleep(1)
    os.system("clear")
    if trabalhando("127.0.0.1", 80):
        print bcolors.OKGREEN+"O servico ta rodando"+bcolors.ENDC
    else:
        print bcolors.FAIL+"O servico não esta rodando."+bcolors.ENDC
        time.sleep(1)
        reiniciando()