> > Aggiungo solo che su Linux non c'è un servizio init standard.
> > Su archlinux usano systemd, che sembra sia la moda del momento.
> > Su Ubuntu usano upstart, ma in futuro passerà a systemd.
> >
> > Quindi ti suggerisco di leggere la documentazione di systemd.
> 
> Sapevo che questo qualcuno l'avrebbe puntualizzato. Cambia poco: il suo 
> programma deve ricevere gli stessi segnali. Sulla versione ubuntu che 
> lui usa c'è ancora upstart: installare systemd da backport è rognoso, 
> quindi non ne vale la pena sbattersi.
ok ragazzi, diciamo che l'ho "imbastito" così:Ha senso? Chiaramente modifico 
poi il conf file sotto init import signal
import time
import multiprocessing
import logging event = multiprocessing.Event()
log = logging() def stopHandler(signum, frame):
    '''        Chiudo le connessioni con le seriali e websocket    anche se 
credo di aver capito che dal TERM in poi se ne occupa ubuntu di chiudere tutto  
  '''
    log.info("Chiusura del servizio")
    event.set()
    
signal.signal(signal.SIGTERM, stopHandler) if __name__ == '__main__':
    log.info("Avvio del servizio")
    while not event.is_set():
        #Eseguo l'init dei miei thread secondari
        log.info("Thread secondari inizializzati")
        
        #Tutta la logica nelle librerie correlate dei threads

        [...]

                                          
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a