Hace unos días un amigo me envío un correo pidiéndome que le indicara como ejecutar un script que estuviera checando constantemente si un proceso esta ejecutándose y si no que el script lo ejecutara.
Para esto le envíe el siguiente ejemplo y lo posteo por aquí por si alguien le fuera de utilidad..
#ejecutamos este comando para crear un directorio#
sudo mkdir /scripts
#editamos el script#
sudo editor /scripts/script.sh
#***colocar lo siguiente dentro del script**#
#/bin/bash
if [[ ! `pidof -s nombre_del_proceso` ]]; then
sudo /ruta_del_proceso/nombre_del_proceso
fi
#****Hasta aqui***#
#ejecutar este comando para asignar permisos de ejecución
chmod +x /scripts/script.sh
#Por ejemplo que el script anterior lo guardáramos en /scripts/script.sh
Para que este script se ejecute y verifique cada x tiempo si asterisk esta arriba hay que ponerlo en el archivo de /etc/crontab
#ejecutar
sudo editor /etc/crontab
#agregar al final del archivo lo siguiente
# m h dom mon dow user command
1/10 * * * * root /scripts/script.sh
#***hasta aqui*******
#lo anterior indica que el escript se ejecutará cada 10 minutos todas las horas y todos los días del mes, el usuario que lo ejecutará es root y el ecript está en /script/script.sh
#despues guardar los cambios en /etc/crontab y luego reiniciar ejecutando
sudo /etc/init.d/cron restart
Dejar un comentario