Comprobar si está caído un servicio con python

Una forma sencilla de comprobar si un servicio del servidor está caído y hacer que se vuelva a levantar con Python.

En este caso es para comprobar si el apache está funcionando y si no lo está iniciar el servicio.

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import socket, subprocess
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip="127.0.0.1"
port="80"
try:
	s.connect((ip, int(port)))
	s.shutdown(2)
except:
	subprocess.call(['/etc/init.d/apache2', 'start'])

Lo ideal sería tener este script ejecutándose en el cron cada poco tiempo.