So I wrote a script which acts like a daemon.
And it starts with something like this....

########### Begin Code

import signal

STOPIT = False

def my_SIGTERM_handler(signum, frame):
    global STOPIT
    print '\n--- Caught SIGTERM; Attempting to quit gracefully ---'
    STOPIT = True

signal.signal(signal.SIGTERM, my_SIGTERM_handler)
signal.signal(signal.SIGINT , my_SIGTERM_handler)

########### End Code

My main loop looks something like this...

login()
while not STOPIT:
    foo1()
    foo2()
    foo3()
    if STOPIT:
        break
    bar1()
    bar2()
    bar3()

print 'bye'
logout()

This seems to work okay but just now I got this while hitting ctrl-c
It seems to have caught the signal at or in the middle of a call to
sys.stdout.flush()


--- Caught SIGTERM; Attempting to quit gracefully ---
Traceback (most recent call last):
  File "/home/user/test.py", line 125, in <module>
    sys.stdout.flush()
IOError: [Errno 4] Interrupted system call


How should I fix this?
Am I doing this completely wrong?

Thanks,
~Eric
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to