import sys,os,signal,time counter = 0 def handler(sig,ignore): global counter counter+=1 time.sleep(1) # do some work in the handler return if __name__ == "__main__": signal.signal(signal.SIGUSR2, handler) pid = os.fork() if (pid == 0): # child for i in range(5): os.kill(os.getppid(), signal.SIGUSR2) print "sent SIGUSR2 to parent" sys.exit(0) try: os.wait() except: pass # ignore l'exception en cas de reception d'un signal print "counter=%d" %(counter) sys.exit(0)