[python] Problem s forkujicim serverem a SIGTERM signalem
Leos Pol
leos.pol na firma.seznam.cz
Středa Prosinec 17 15:59:13 CET 2008
To me privadi na myslenku, kdyz vidim ten try, jestli nechytas vyjimku
SystemExit.
David Michal wrote:
> Ja teda neumim vysvetlit proc nejde exit ale co to zkusit takhle:
>
> sysexit = False
>
> def cleanup(signal, frame):
> """Clean up the server before shutdown.
> """
> # SIGTERM signal
> if signal == 15:
> print "Received SIGTERM signal, waiting for clients
> termination"
> while True:
> # In case that there isn't any active clients
> if not clients:
> break
> sysexit = True
>
> # Nadrazena smycka:
> while not sysexit:
> # Handle the child temination
> signal.signal(signal.SIGCHLD,reap)
>
> # Catch the SIGTERM signal
> signal.signal(signal.SIGTERM, cleanup)
> #signal.pause()
> try:
> connection,address = sock.accept()
>
>
>> -----Original Message-----
>> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of
>> Lumír Jasiok
>> Sent: Wednesday, December 17, 2008 2:26 PM
>> To: Konference PyCZ
>> Subject: [python] Problem s forkujicim serverem a SIGTERM signalem
>>
>> Dobry den,
>>
>> potreboval bych poradit s nasledujicim problemem. Mam napsany
>> jednoduchy
>> forkujici TCP/IP server. Server jako takovy funguje, child procesy se
>> vytvareji i ukoncuji korektne, jediny probleme mam s ukoncenim parent
>> procesu v okamziku, kdy z (napriklad shellu) zavolam signal SIGTERM.
>> Mam
>> osetreno zachyceni signalu a funkci, ktera zajisti, ze se pocka na
>> ukonceni vsech child procesu a pak by se mel ukoncit i parent proces
>> pomoci sys.exit(0). To se ale nestane, parent proces (server) se
>> neukonci, ale skoci do nadrazene while smycky a dale ceka na spojeni a
>> je schopen obsluhovat prichozi spojeni. Relevantni kod:
>>
>>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
--
------------------------------------------------------------------------
*Leoš Pol*
senior programátor Lide.cz
*Seznam.cz a.s.*
Business Park, budova B
Londýnské náměstí 2
639 00 Brno
tel: +420 543 533 073
gsm: +420 777 901 087
email: leos.pol na firma.seznam.cz <mailto:leos.pol na firma.seznam.cz>
www: http://www.seznam.cz
Další informace o konferenci Python