Script per mantenere i processi sempre attivi


Può capitare di dover mantenere attivo un processo ed eventualmente riavviarlo se termina… ci sono diverse soluzioni, tra queste un semplice script Bash😉

Di seguito uno script di esempio per poter avere sempre attivo un xterm con i messaggi del kernel:

#! /bin/bash

DELAY="4"

P_NAME="xterm"
P_PATH="/usr/bin/"
P_ARG="-title "log" -e tail -f /var/log/messages"

P_LOGFILE="/tmp/xterm.log"

while true
do
   if ! pidof $P_NAME > /dev/null 2>&1
   then
      cd $P_PATH
      nohup ./$P_NAME $P_ARG > $P_LOGFILE 2>&1 &
   fi
   sleep $DELAY
done

Con i comando pidof controlliamo lo stato del processo, se attivo o meno, e quindi se non presente lo avviamo.
E’ possibile adeguarlo anche per altre esigenze, basta modificare la definizione delle variabili P_NAME, P_ARG e P_PATH in modo da adattarla alla situazione
Cambiando il valore di DELAY possiamo variare semplicemente la frequenza di controllo dello stato del processo

4 thoughts on “Script per mantenere i processi sempre attivi

  1. Fattazzo ha detto:

    Confido in te e nei tuoi lettori, help!!!!!!!!!😀
    Anche io tempo fa ero riuscito a realizzare questo script perchè avevo appunto la necessità di tenere un processo sempre attivo e tutto funzionava alla grande. Adesso mi si pone il problema di come fare per tenere due processi uguali attivi. Mi spiego meglio, questa è la situazione:
    /home/utente/dir1/x1 –> primo processo da lanciare
    /home/utente/dir2/x2 –> secondo processo da lanciare
    Il problema è che i due processi da lanciare sono in due directory diverse ma una volta lanciati hanno lo stesso nome quindi PIDOF non mi restituisce un numero del processo ma due. Ora come faccio a lanciare i due processi e fare in modo, che se ad esempio il secondo si ferma, venga rilanciato?

    Grazie a chi mi può aiutare😀

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...