Con este (mejorable) script se comprueba un determinado servicio. Se comprueba si existe su pid y si su puerto esta abierto. En caso de no estar abierto se ejecuta el comando especificado.
En este ejemplo se ve el caso del servicio proftpd:
#!/bin/bash

# comprobador de proceso

NOMBRE=proftpd
PIDFILE=/usr/local/var/proftpd.pid
PUERTO=21
COMANDO="/etc/rc.d/init.d/proftpd restart"

echo comprobando si $NOMBRE esta OK...


if [ -f ${PIDFILE} ]
then
        echo PID [`cat ${PIDFILE}`]
        netstat -ln | grep ":${PUERTO}" && echo $NOMBRE OK && exit 0
else
        echo NO existe. Comprobacion de puerto:
        netstat -ln | grep ":${PUERTO}" || ${COMANDO}
fi

netstat -ln | grep ":${PUERTO}" || ${COMANDO}