<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>