<html>
<head>
</head>
<body class='hmmessage'><div dir='ltr'>

<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style>
<div dir="ltr"><div><br>> > Aggiungo solo che su Linux non c'è un servizio init standard.<br>> > Su archlinux usano systemd, che sembra sia la moda del momento.<br>> > Su Ubuntu usano upstart, ma in futuro passerà a systemd.<br>> ><br>> > Quindi ti suggerisco di leggere la documentazione di systemd.<br>> <br>> Sapevo che questo qualcuno l'avrebbe puntualizzato. Cambia poco: il suo <br>> programma deve ricevere gli stessi segnali. Sulla versione ubuntu che <br>> lui usa c'è ancora upstart: installare systemd da backport è rognoso, <br>> quindi non ne vale la pena sbattersi.<br></div><div>ok ragazzi, diciamo che l'ho "imbastito" così:</div><div>Ha senso? </div><div>Chiaramente modifico poi il <strong>conf </strong>file sotto <strong>init</strong></div><div> </div><div><font face="Courier New">import signal<br>import time<br>import multiprocessing<br>import logging</font></div><div><font face="Courier New"></font> </div><div><font face="Courier New"><font color="#008a17"><strong>event </strong></font>= multiprocessing.Event()<br>log = logging()</font></div><div><font face="Courier New"></font> </div><div><font face="Courier New">def <strong>stopHandler</strong>(signum, frame):<br>    <font color="#008a17">'''    </font></font></div><div><font color="#008a17" face="Courier New">    Chiudo le connessioni con le seriali e websocket</font></div><div><font color="#008a17" face="Courier New">    anche se credo di aver capito che dal TERM in poi se ne occupa ubuntu di chiudere tutto</font></div><div><font color="#008a17" face="Courier New">    '''</font></div><div><br><font face="Courier New">    log.info("Chiusura del servizio")<br>    event.set()<br>    <br>signal.signal(signal.<font color="#d24726">SIGTERM</font>, <strong>stopHandler</strong>)</font></div><div><font face="Courier New"></font> </div><div><font face="Courier New">if __name__ == '__main__':<br></font></div><div><font face="Courier New">    log.info("Avvio del servizio")</font></div><div><font face="Courier New"><br>    <font color="#000000" style="background-color: rgb(255, 255, 255);">while not <strong><font color="#008a17">event</font></strong>.is_set():</font><br>        <font color="#008a17">#Eseguo l'init dei miei thread secondari</font><br>        log.info("Thread secondari inizializzati")<br>        <br>        <font color="#008a17">#Tutta la logica nelle librerie correlate dei threads</font><br><br>        [...]</font><br></div></div>
                                          </div></body>
</html>