Estuve buscando una forma de reiniciar un proceso si se cae, y bueno, estuve experimentando un poco con bash sobre el tema, y si bien, basicamente lo logre, era un script de unas 20 lineas, luego en un foro vi una persona que ocupaba el comando pgrep y lo adapté al script, que ahora ocupa 1 linea!
Bueno, es para un proceso muy basico asi como el proposito. Muchas veces dejo encendido el notebook con el amule ejecutandose, y este se sabe cerrar, asique con este pequeño script me aseguro que vuelva a revivir si muere.
Primero creo el script:
$ vi resucitar
while true; do pgrep $1 || $1; done
guardo, salgo y lo hago ejecutable
$chmod u+x resucitar
Luego para ejecutarlo
$resucitar amule
y ya está el código es bastante simple, lo explico:
while true;: mientras sea cierto, como no comparo nada, creo un bucle infinito
do pgrep $1 || $1; El comando pgrep obtiene el PID del 1º argumento que di en el script, por ejemplo, amule; luego le digo, si no es verdad (
o logico,
||) que existe ese proceso, que ejecute el argumento
done: Finaliza el while, y vuelve a principio porque no ha cambiado la condición (true) y no cambiará
Para finalizar el programa, CTRL+C en la consola.
Enviado por Jorge Mestre