Pagina 1 di 1

[risolto]Controllo applicazione in esecuzione e ev. rilancio

Inviato: venerdì 13 maggio 2016, 15:22
da steff
Vorrei ordinare in questa fabbrica uno script tipo

Codice: Seleziona tutto

for i in \
    applicazione1 \
   applicazione2

do
    ps -e | grep $i
 if 
presente niente
if not presente rilancio
per darlo in pasto a cron, ho due applicazioni che trovo morti ognitanto.
Grazie in anticipo :)

Re: controllo applicazione in esecuzione ed ev. rilancio

Inviato: venerdì 13 maggio 2016, 15:49
da SuperStep
una cosa del genere?

Codice: Seleziona tutto

#!/bin/sh
for i in a.out b.out c.out; do
        ps cax | grep $i > /dev/null
        if [ $? -eq 0 ]; then
                #Process running
                echo "$i is running"
                #Maybe Log it?
        else
                #Process not running
                $i
        fi
done
ovviamente il programma deve essere in una directory di $PATH

Re: controllo applicazione in esecuzione ed ev. rilancio

Inviato: venerdì 13 maggio 2016, 15:54
da steff
Perfetto grazie :)

Codice: Seleziona tutto

       else
                #Process not running
                $i 
                echo '$i riavviato alle timestamp' >> log.txt
        fi
Ora vorrei anche un log in quel modo ;)

Re: controllo applicazione in esecuzione ed ev. rilancio

Inviato: venerdì 13 maggio 2016, 16:16
da SuperStep
non so che formato data tu preferisca, comunque il full-set lo trovi qui: http://www.cyberciti.biz/tips/shell-scr ... ename.html

trovo che:

Codice: Seleziona tutto

date +"%Y-%m-%d %H:%d"
possa essere una valida soluzione

Codice: Seleziona tutto

step@Cris:~$ date +"%Y-%m-%d %H:%d"
2016-05-13 16:13

Re: controllo applicazione in esecuzione ed ev. rilancio

Inviato: venerdì 13 maggio 2016, 16:41
da steff

Codice: Seleziona tutto

#!/bin/sh
for i in processo1 processo2; do
        ps cax | grep $i > /dev/null
        if [ $? -eq 0 ]; then
                #Process running
                echo "$i è in escuzione"
                #Maybe Log it?
        else
                #Process not running
                echo $i riavviato il >> rilancio.log
		date +"%a %e %B alle %H:%d" >> rilancio.log
                $i
        fi
done
funziona solo che non sono riuscito di farlo scrivere su una riga solo nel log

Re: controllo applicazione in esecuzione ed ev. rilancio

Inviato: venerdì 13 maggio 2016, 16:54
da SuperStep

Codice: Seleziona tutto

echo $i riavviato il $(date +"%a %e %B alle %H:%d") >> rilancio.log

Re: controllo applicazione in esecuzione ed ev. rilancio

Inviato: venerdì 13 maggio 2016, 19:34
da steff
Perfetto, metto [risolto]
(ovviamente adesso che si sentono controllate non crashano più di nascosto...)

Re: [risolto]Controllo applicazione in esecuzione e ev. rila

Inviato: domenica 15 maggio 2016, 17:15
da crap0101
con ps si può fare più semplicemente

Codice: Seleziona tutto

if ps -C $i; then
    : faccio qualcosa
else
    : non faccio nulla
fi
btw la redirezione a /dev/null direi che non serve... non hai un terminale attaccato, no?

Re: [risolto]Controllo applicazione in esecuzione e ev. rila

Inviato: domenica 15 maggio 2016, 20:24
da steff
No, però ho cambiato konversation per quassel, stufato da dieci crash/gg