[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