Problema con script per demone ciclico
Regole della sezione
In questa sezione possono inserire nuove discussioni solo coloro che fanno parte del livello "Prode Principiante" e che non hanno superato i 100 messaggi, tutti gli altri possono comunque rispondere regolarmente. Se si fa parte di questo livello e si è registrati al forum prima del 24 aprile 2012, data del passaggio al nuovo forum, consultare questa discussione.
Come usare Ubuntu • Primi passi su Ubuntu
Amministrazione del sistema • Comandi di base • Installare programmi • Log di sistema • Riga di comando • Sudo
In questa sezione possono inserire nuove discussioni solo coloro che fanno parte del livello "Prode Principiante" e che non hanno superato i 100 messaggi, tutti gli altri possono comunque rispondere regolarmente. Se si fa parte di questo livello e si è registrati al forum prima del 24 aprile 2012, data del passaggio al nuovo forum, consultare questa discussione.
Problema con script per demone ciclico
Ciao a tutti, premetto che sono un neofita di linux ma per necessità di lavoro ho realizzato un piccolissimo script su un dispositivo di IO che utilizza un core linux e che controlla ogni 4-5 secondi quante istanze di un processo ci sono e se tale numero supera 4 il demone scrive una data in un logfile e killa tutte le istanze altrimenti si mette in sleep per 4 secondi e poi riparte (tutto cioè è racchiuso dentro ad un while).
Lo script sembra funzionare correttamente solo che mi sono accorto che nonostante non faccia praticamente niente fa salire il carico della cpu e man mano che passano le ore e i giorni occupa sempre più memoria senza rilasciarla e non capisco come mai. Al contrario ho realizzato un processo che controlla se un altro processo è attivo e se non lo è lo richiama altrimenti anch'esso si mette in attesa per 4-5 secondi e poi riparte. Solo che in questo ultimo caso non ho ne una crescente occupazione di memoria ne tanto meno un carico elevato sulla CPU.
Vi allego le 2 righe di codice dello script in modo da capire se sbaglio qualcosa e se sapete consigliarmi su come poterlo modificare.
#!/bin/bash
while[1]
do
X=$(ps | grep -v grep | grep ./home/nome_processo | wc -l)
if [$X -gt 4]
then
/bin/date >> /home/log.txt
killall -9 pidof nome_processo
fi
sleep 4
done
Grazie a tutti
Ciao
Lo script sembra funzionare correttamente solo che mi sono accorto che nonostante non faccia praticamente niente fa salire il carico della cpu e man mano che passano le ore e i giorni occupa sempre più memoria senza rilasciarla e non capisco come mai. Al contrario ho realizzato un processo che controlla se un altro processo è attivo e se non lo è lo richiama altrimenti anch'esso si mette in attesa per 4-5 secondi e poi riparte. Solo che in questo ultimo caso non ho ne una crescente occupazione di memoria ne tanto meno un carico elevato sulla CPU.
Vi allego le 2 righe di codice dello script in modo da capire se sbaglio qualcosa e se sapete consigliarmi su come poterlo modificare.
#!/bin/bash
while[1]
do
X=$(ps | grep -v grep | grep ./home/nome_processo | wc -l)
if [$X -gt 4]
then
/bin/date >> /home/log.txt
killall -9 pidof nome_processo
fi
sleep 4
done
Grazie a tutti
Ciao
Re: Problema con script per demone ciclico
...dubito che il codice che hai postato funzioni correttamente. Questo invece dovrebbe funzionare:
Codice: Seleziona tutto
#!/bin/bash
while true; do
x=$(ps -ef | grep -v grep | grep './home/nome_processo' | wc -l)
if [[ $x -gt 4 ]]; then
/bin/date >> /home/log.txt
killall -9 nome_processo
fi
sleep 4
done Re: Problema con script per demone ciclico
Ciao bingel, grazie per il consiglio. Il problema non è tanto se lo script funziona (ho provato più volte e sembra funzionare senza problemi), quanto sapere il motivo per cui mi occupa il processore in modo eccessivo e più importante ancora causa una occupazione di memoria sempre maggiore che non si libera mai.
Non viene in mente niente a nessuno?
Non viene in mente niente a nessuno?
- Laycastle
- Entusiasta Emergente

- Messaggi: 1183
- Iscrizione: sabato 9 aprile 2011, 21:54
- Desktop: KDE 4.8
- Distribuzione: Gentoo ~amd64
- Località: Torino
Re: Problema con script per demone ciclico
Ciao,
quello postato in precedenza contiene diversi errori, io farei una prova quello di bingel e verificare se da gli stessi problemi.
p.s. non so di che genere di dispositivo stiamo parlando, ma se, per caso, hai a disposizione un demone cron potresti gestire il tutto in maniera molto più flessibile.
p.p.s
@bingel grep -c...!!
quello postato in precedenza contiene diversi errori, io farei una prova quello di bingel e verificare se da gli stessi problemi.
p.s. non so di che genere di dispositivo stiamo parlando, ma se, per caso, hai a disposizione un demone cron potresti gestire il tutto in maniera molto più flessibile.
p.p.s
@bingel grep -c...!!
la via più breve tra due punti è l'arabesco.
Re: Problema con script per demone ciclico
Non so come tu abbia verificato il funzionamento del tuo script ma a parte i vari dettagli che ho aggiustato (senza tali aggiustamenti probabilmente funzionerebbe lo stesso), la cosa importante che mancava era il parametro "-ef" del comando "ps". Senza tale parametro mi pare quasi impossibile che il risultato possa essere quello voluto.
Prova semplicemente ad eseguire un
da terminale (senza alcun parametro) e ti renderai conto da solo che il relativo output è del tutto inutile ai tuoi fini.
Prova semplicemente ad eseguire un
Codice: Seleziona tutto
psChi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti
