Newsgroup: it.comp.os.linux.sys
Titolo: riavvio demone

come riavviare un demone in automatico, eventualmente dopo un tempo
prestabilito dalla sua accidentale interruzione (non riavvio della
macchina) e comunque solo se e' stato killato?
grazie in anticipo

 macchina) e comunque solo se e' stato killato?
non è che ho capito molto bene... cosa intendi per prestabilito?
se ti e' sufficiente, puoi usare uno script in crontab che verifica
tramite ps o pidof se e' attivo il demone, ed eventualmente ti notifica 
tramite e-mail e cerca di riavviarlo.
Ciao
Manuel

On Fri, 13 Jan 2006 09:46:45 +0100, Manuel manetta wrote:
hai centrato :) infatti mi interessava che il servizio non fosse inattivo
per piu' di un certo tempo nel caso un utente lo killasse per sbaglio
dalla sua gui (lo puo' fare) e crontab con pidof risolve il problema.
A proposito di ps non ho capito perche' certe volte ps -a e ps -aux non mi
mostrano demoni che stanno funzionando ed anche alla grande :?
grazie

 Da inetd?
grazie del suggerimento: lo usero' con samba.

 mostrano demoni che stanno funzionando ed anche alla grande :?
Se per 'stanno funzionando' intendi che sono in ascolto, forse perche' sono
avviati con inetd.
-- 
Stefano L.

 grazie in anticipo
Bel problema!
per farlo si puo' fare in vari modi, ma farlo in maniera veramente
efficiente e reattiva ci vuole un po' di creativita'.
In certi casi, quando il server lo scrivo io faccio anche un programma
controllore che lo lancia e se riceve SIGCHLD lo rilancia.
Server fatti da altri che si daemonizzano in modo classico (svincolo
da gruppo di processi, svincolo da terminale di controllo, cambio
homedir a /, riapertura stdin e stdout su /dev/null ...) rimandono
parenti solo di init, il processo con PID 1 che ne ricevera'
SIGCHLD alla terminazione e che semplicemente ne acquisira' lo stato
per non farli rimanere zombies.
Modificare o riscrivere init non dovrebbe essere difficile per riavviare
un processo alla sua terminazione. L' opzione respawn non funzionera'
perche' un daemon di solito per svincolarsi dal gruppo di processi
si forka e sopravvive solo il figlio, non quello lanciato originale,
quindi init riceverebbe subito la chiusura e continuerebbe ad avviarlo.
credo che si possa fare qualcosa usando come init
http://initng.thinktux.net/index.php/Main_Page
http://doxygen.initng.thinktux.net/
ma e' da studiare. Visto che mi hai dato questo interessante compitino,
ci provero', ma non garantisco.
Ciao
Roberto.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

flodim ha scritto:

Secondo me, come ti han già suggerito, ti conviene farlo tramite cron+pidof.
magari ti fai uno script tipo
if [`pidof -s processo1` == ""]; then riparti_processo1; fi
if [`pidof -s processo2` == ""]; then riparti_processo2; fi
e tramite cron lo esegui ogni minuto.
questo è come ho fatto io.

 Roberto.
dai :) e' meglio se esci, con tante gnocche infreddolite...
La soluzione era semplice, e' proprio uno scriptino. Seguendo i vari
consigli del ng ho scritto uno scriptino:
#!/bin/bash
daem01=$[ `pidof nomemiodemone` ]
if [ $daem01 -eq 0 ]
then /etc/init.d/miodemone restart
fi
aggiunto a crontab
Vado a studiare i tuoi link :)

 consigli del ng ho scritto uno scriptino:
Se gli script da monitorare sono molti, io ti consiglio di mettere tutto 
su una riga. cosi hai una riga per ogni processo.

 Vado a studiare i tuoi link :)
Io li ho trovati solo perche' hai posto il problema, ma ora questo prodotto
mi interessa molto.


 
interessante....

    deve essere lento e in quella latenza il servizio non e' disponibile.
Be non credo sia tanto invasivo un 'pidof'...
Comunque una situazione standalone tramite init sarebbe sicuramente meglio.


maxadamo@gentoo ~ $ esearch daemontools
[ Results for search key : daemontools ]
[ Applications found : 4 ]
*  sys-process/daemontools
       Latest version available: 0.76-r5
       Latest version installed: [ Not Installed ]
       Size of downloaded files: 36 kB
       Homepage:    
http://cr.yp.to/daemontools.html
       Description: Collection of tools for managing UNIX services
       License:     freedist
*  sys-process/daemontools-scripts
       Latest version available: 1.0.2
       Latest version installed: [ Not Installed ]
       Size of downloaded files: 10 kB
       Homepage:    
http://dev.gentoo.org/~kaiowas/
       Description: gentoo specific daemontools wrapper scripts
       License:     GPL-2
*  app-doc/daemontools-man
       Latest version available: 20020131
       Latest version installed: [ Not Installed ]
       Size of downloaded files: 7 kB
       Homepage:    
http://smarden.org/pape/djb/manpages/
       Description: Man pages for daemontools
       License:     public-domain
[CUT]
-- 
Massimiliano

 prestabilito dalla sua accidentale interruzione (non riavvio della
]zac[
Non so se fa tutto quel che vuoi, ma 'qmail' usa 'supervise' per garantirsi
la vita eterna.


fa parte del pacchetto: sys-process/daemontools...
-- 
Massimiliano

 fa parte del pacchetto: sys-process/daemontools...
Ho qualche dubbio che quel pacchetto ci sia in tutte le distribuzioni.
Comunque è facilmente scaricabile in formato sorgente.


Infatti non e' su tutte le distribuzioni :)
supervise fa parte di di un pacchetto che trovi qui: 
http://cr.yp.to/daemontools.html
-- 
Massimiliano

 grazie del suggerimento: lo usero' con samba.
A parte l'apparente ironia, samba, che io sappia, si puo' usare anche
tramite inetd, e non solo standalone...  :-)
bye G.L.

 
nessuna ironia, anche se ho visto che mi conviene tenere sempre avviato
samba per avere una risposta + veloce da parte degli impazienti punta e
clicca. Ripeto nessuna ironia, mia ignoranza piuttosto :)


inetd in se, non da nessuna sicurezza. Pure inetd va in crash, e qundo 
va in crash inetd non va piu' telnet, ftp, rlogin, niente. E questo e' 
proprio il piu' stupido tra i problemi che affronto sui nostri server 
giornalmente... e che riesco a risolve grazie al fatto che SSH, che gira 
fuori inetd, e' ancora attivo.
-- 
Massimiliano

 macchina) e comunque solo se e' stato killato?
A me piace molto e uso monit, anche se non lo conosco tanto (sicuramente 
pero`, almeno per l'esperienza di alcuni mesi che ne ho avuto funziona): 
http://www.tildeslash.com/monit/doc/
.
Andrea

 
http://cr.yp.to/daemontools.html
Il problema e` che ci sono alternative che ritengo valide e anche se e` 
famoso per scrivere bei pezzi di sw (qmail) D.J.Bernstein (che credo ne 
sia l'autore) e` anche famoso per essere un pezzo di ...
Quindi a meno di evidenze contrarie, preferisco le alternative.
Andrea

 sia l'autore) e` anche famoso per essere un pezzo di ...
un pezzo di? (non so se conosci Cipri' e Maresco) un pezzo di brava persona?
Per restare in tema con cipri' e maresco, meglio che ci fermiamo qui ed 
evitiamo minchiate puramente OT :)
-- 
Massimiliano