PDA

Visualizza la versione completa : [Bash scripting]Sapere se demone e` attivo


magix2003
22-08-2005, 12:55
Ciao,
volevo sapere se esiste un comando in bash che mi permetta di sapere se un demone attivo. Cioe' io vorrei fare una cosa del genere:


if (demone_attivo){
istruzioni
}
else{
istruzioni
}

E' fattibile?
Ciao e grazie

raistlin76
22-08-2005, 13:58
Per vedere se un processo in esecuzione usa il comando ps, esempio:
ps aux | grep nome_processo

Spero di esserti stato d'aiuto.
:ciauz:

magix2003
22-08-2005, 14:48
Ci avevo pensato anche io pero' il problema e' che non so come fare il ciclo if. La mia idea era reindirizzare il ps in un file e controllarlo, si puo' fare? Un altro problema e' che se do ps ax|grep demone, mi da come risultato anche grep demone come processo. Qualcuno ha qualche idea?
Ringrazio gia' quelli che mi potranno aiutare

Ikitt
22-08-2005, 15:00
Originariamente inviato da magix2003
volevo sapere se esiste un comando in bash che mi permetta di sapere se un demone attivo. Cioe' io vorrei fare una cosa del genere:
[...]
E' fattibile?

Yup, potresti usare "pidof", che stampa a video il PID del processo passato come argomento (se questo e` in esecuzione), ed esce con successo, o esce con errore altrimenti...

esempio:


if pidof UNDEMONE > /dev/null; then
echo OK
else
echo KO
fi

Guglie
22-08-2005, 15:11
grazie, Ikitt, elegante come soluzione, non la conoscevo :)

magix2003
22-08-2005, 15:18
Grazie mille,
mi hai illuminato, anche se ho ancora qualche problema, lo script mi restituisci quest'output:
syntax error: unexpected end of file
Questo e' lo script:


#!/bin/sh
if pidof pmacctd > /dev/null; then
/etc/init.d/pmacct stop
psql pmacct <<prova
\copy acct to /tmp/psql
prova
psql pmacct -f /root/prova.pgsql
scp /tmp/psql sniffer:/tmp/psql &>prova1.log
/etc/init.d/pmacct start
else
psql pmacct <<prova
\copy acct to /tmp/psql
prova
psql pmacct -f /root/prova.pgsql
scp /tmp/psql sniffer:/tmp/psql &>prova1.log
fi

Probabilmente e' qualcosa che ho sbagliato io, e' da poco che ho iniziato con il bash scripting.
:ciauz:

magix2003
22-08-2005, 17:57
Ho risolto il problema, era con l'identazione prova, che cozzava con la tabulazione, tolta la tabulazione ho risolto il problema.
Ciao

Loading