title: How to handle OS signal in a python program?
body: <p>I am writing a python program which reads from a queue through a infinite while loop. How can I handle signal sent by OS / Keyboard interrupt(CTRL+C) to break from the while loop and close active connections and files and exit the program gracefully instead of killing the process.</p>
  
  <pre><code>while True:
      read_from_file_and_do_something()
      ## Handle a signal of shutdown here.
      ## Send email before exiting.
  </code></pre>
  
  <p>This program will run as a daemon. Thus would require a signal to be sent.</p>