[bglug] Processi doppi

embyte embyte@madlab.it
Mer 12 Nov 2003 14:14:57 CET


On Wednesday 12 November 2003 11:09, fernando Figaroli wrote:
~Alle 10:38, mercoledì 12 novembre 2003, tHEbREV ha scritto:
~> Il processo è schedulato in crontab. Può anche
~> succedere che io voglia lanciarlo a manina.
~> Ma se sta ancora funzionando, crontab lo lancia
~> comunque. Come potrei con uno script bash controllarne
~> l'esistenza e nel caso evitare il lancio doppio da
~> crontab?
~
~così puoi vedere se un processo è in esecuzione ..
~
~es:
~
~$ ps aux| grep bash
~ 1772 pts/0    00:00:00 bash
~$ echo $?
~0  (vuol dire che c'è ..)
~ ps aux| grep pippo
~ echo $?
~1 (non c'è...)
~
~ciao.
~

No no no :-) Ci sono i meccanismo di locking apposta..
Se fossi in te farei una modifica al codicillo in C: all'avvio del programma 
gli fai controllare la presenza di un file lock tipo /var/run/proggy.log e se 
non esiste lo crei e lo blocchi, appunto (dentro ci puoi scrivere user/pid). 
Altrimenti quitti con un warning come: "proggy sta gia girando con PID 666 e 
utente lamer". Ricordati che in caso d'errore l'applicazione stessa 
interviene in modo da cancellare il lock-file prima di uscire (la stessa cosa 
vale se gli arriva un segnale tipo SIGKILL or similia -> dai un'occhiata a 
signal(2)).

Effettivamente la stessa cosa la puoi fare con uno script bash che fa da 
wrapper tra te/cron e proggy. 

Spero di averti reso l'idea.
Ciao
-- 
bash$ :(){ :|:&};: 

Computer Science belongs to all Humanity!



Maggiori informazioni sulla lista bglug