Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from datetime import datetime
  4. import os
  5. import signal
  6. import sys
  7. import threading
  8. import time
  9.  
  10.  
  11. def main(environ, args):
  12. log("starting main")
  13. thread = Pauser(5)
  14. signal.signal(signal.SIGTERM, sighandler(thread))
  15.  
  16. thread.start()
  17. time.sleep(1)
  18. log("sending TERM signal")
  19. os.kill(os.getpid(), signal.SIGTERM)
  20.  
  21. log("main beginning 5 second sleep")
  22. time.sleep(5)
  23. log("main finished sleep, exiting")
  24.  
  25. return 0
  26.  
  27.  
  28. _start = datetime.now()
  29.  
  30. def log(msg):
  31. print("({} elapsed) {}".format(datetime.now() - _start, msg))
  32.  
  33.  
  34. def sighandler(thread):
  35. def handler(signum, frame):
  36. log("signal handler invoked for signal {}".format(signum))
  37. thread.join()
  38. log("signal handler successfully joined thread")
  39. return handler
  40.  
  41.  
  42. class Pauser(threading.Thread):
  43. def __init__(self, pause_time):
  44. super(Pauser, self).__init__()
  45. self.pause_time = pause_time
  46.  
  47. def run(self):
  48. log("pauser beginning {} second sleep".format(self.pause_time))
  49. time.sleep(self.pause_time)
  50. log("pauser finished sleep, exiting")
  51.  
  52.  
  53. if __name__ == "__main__":
  54. sys.exit(main(os.environ, sys.argv))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement