Crea sito

LINUX: Controllare se un servizio è in esecuzione

8 / 100

Script che controlla se un determinato servizio (in questo caso apache) è in esecuzione e se non lo è lo riavvia.

#!/bin/bash
if $(ps ax | grep apache2 | grep -v grep > /dev/null ) ;
then
exit ;
else
/etc/init.d/apache2 restart ;
fi
Un altro modo per fare la stessa cosa:
#!/bin/bash
TAG=”MOTION”
CONTROL=$(ps ax | grep motion | grep -v grep | awk ‘{print $5}’)
sleep 5 ;
if [ -n “$CONTROL” ]
then
echo “Motion già in esecuzione” ;
exit 0 ;
else
echo “Motion non attivo, RIAVVIO motion!”
motion ;
logger riavvio servizio non attivo -t $TAG ;
exit 1 ;
fi

 

 

Questo script prende l’output opportunamente filtrato da grep e se la stringa NON è vuota (-n “$CONTROL”) esce perché motion è già in esecuzione,
altrimenti riavvia il servizio e riporta con logger un eventuale avvio.
ATTENZIONE: il nome dello script non deve contenere “traccia” del nome del servizio da cercare, grep altrimenti troverà come servizio corrispondente lo
stesso script e non funzionerà come ci si aspetterebbe: in questo caso ad esempio sarebbe un errore nominarlo “riavvio_motion”.
Translate »