[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