[Python] Python come servizio sotto Ubuntu Server

Dario Concilio dario.concilio a hotmail.it
Sab 19 Apr 2014 11:35:14 CEST


Ciao a tutti,ecco ultime news
Ho finito di sistemare il codice e il file confOra mi succede un paio di cose, che non riesco a spiegare.Questo è il file conf sotto /etc/init
<myservice.conf>
description "My Service"author "Dario Concilio <dco a indhisys.it>"
start on startupstart on runlevel [234]stop on runlevel [0156]
chdir /var/www/folder_serviceexec python /var/www/folder_service/MyService.pyrespawn
Nota: la mia cartella del codice python si trova in /var/www/ perché uso la www come share.oltre a questo servizio ho un'interfaccia di configurazione dei setup del database postgresql fatta in PHP, quindi per comodità ho messo le 2 cartelle: servizio in python e sito PHP nella stessa share.
Non sono abbastanza ferrato per capire se questa scelta mi "compromette" qualcosa, magari se potete darmi qualche dritta....
Ora nel mio codice python
<MyService.py>
import Services.TCPCollectorServiceimport loggingimport ConfigParserimport multiprocessingimport signalimport time
event = multiprocessing.Event()
def errorOccurred(self, errorMessage):    logging.error(ex)    event.set()    def stopHandler(signum, frame):    logging.info("Chiusura del servizio")    event.set()
signal.signal(signal.SIGTERM, stopHandler)
if __name__ == '__main__':        logging.basicConfig(filename='myservice.log',level=logging.INFO)    logging.info("Lettura ini")        #Caricamento dei file INI e setting delle variabili che servono a inizializzare il primo thread    [...]        tcpCollector = Services.TCPCollectorService.TcpCollectorService(addressForWeb, indhiVersion, debug, inoutPort, outMacroPort, bitrate)    tcpCollector.errorOccurred += errorOccurred        #Avvio del thread principale, lui avvierà 3 sotto-thread ulteriori    try:        #Avvio thread TCP Collector        tcpCollector.start()        logging.info("TCP Collector avviato")        while not event.is_set():            time.sleep(3)            except Exception as ex:        logging.error(ex)        event.set()
L'effetto è che provando a riavviare il server, il python parte, lo vedo perché compare il file di log.la cosa strana è che nel log trovo per 11 volte il messaggio "Lettura ini", mi aspettavo ovviamente una volta sola e i successivi log info inseriti nel codice
INFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura iniINFO:root:Lettura ini
Inoltre quando provo da terminal (root) faccio stop myservice, mi dice 
stop: Unknown instance:
Se provo ad avviare manualmente mi da questo, quindi tutto ok in avvio.....
myservice start/running, process 1337
 		 	   		  
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140419/2535669e/attachment.html>


Maggiori informazioni sulla lista Python