Linux Query

Associate
Joined
5 Mar 2009
Posts
2
Hello,
I was wondering how i catch various signals in nix python so i can exit my programs gracefully? Please reply my post if you know the answer.

Thanks
 
Code:
#!/usr/bin/python

[B]import signal[/B]
import sys
import time

def shutdown():
   sys.exit(42)

[B]def sigTerm(signum, frame):
   "SIGTERM handler"[/B]
   print "Caught SIGTERM"
   shutdown()

def main():
   [b]signal.signal(signal.SIGTERM, sigTerm)[/b]
   while 1:
       time.sleep(1)

if __name__ == '__main__' or __name__ == sys.argv[0]:
   try:
      sys.exit(main())
   except KeyboardInterrupt, e:
      print "Interrupted!"
      shutdown()

~$ ./sigterm.py &
[1] 24830
~$ kill 24830
~$ Caught SIGTERM

[1]+ Exit 42 ./sigterm.py
~$
~$ ./sigterm.py

^CInterrupted!


Later half covers ctrl+c out.
 
Back
Top Bottom