Magazine Informatica

Script Bash per controllare lo stato di un processo

Creato il 21 gennaio 2013 da Nightfly

Quando si schedulano dei job su cron è opportuno distanziarli tra di loro dal punto di vista temporale, in quanto la sovrapposizione degli stessi potrebbe portare a comportamenti inaspettati. Tale regola andrebbe seguita sempre e comunque, soprattutto se i job si occupano di parsare dei dati e di inserirli dentro un database.

cron, job, parser, ps aux, wc -l, grep, output, gt, bash, script

Dopo questa breve premessa, ecco il codice che utilizzo per il suddetto scopo:

#!/bin/bash
ESEC=`ps aux | grep Parser | wc -l`
if [ $ESEC -gt 1 ]; then #la prima riga e' il grep stesso
echo "Parser is still running.";
exit 0;
fi

Lo script in questione è abbastanza semplice. Dapprima lancia un ps aux | grep Parser, dove Parser è il nome del processo di cui voglio controllare lo stato. Se tale processo non è in esecuzione, l'output del comando conterrà solo ed esclusivamente la riga relativa al grep. Dunque, se il numero di righe ricavate mediante un wc -l è strettamente maggiore di uno, vuol dire che una o più istanze del processo è in esecuzione (lo script esce). Viceversa, lo script continua in quanto nessuna istanza è attualmente attiva.

Alla prossima.


Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :