Velocity Reviews

Velocity Reviews (
-   Python (
-   -   Re: properly catch SIGTERM (

Kushal Kumaran 07-20-2012 08:52 AM

Re: properly catch SIGTERM
On Fri, Jul 20, 2012 at 11:39 AM, Dieter Maurer <> wrote:
> Eric Frederich <> writes:
>> ...
>> 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/", line 125, in <module>
>> sys.stdout.flush()
>> IOError: [Errno 4] Interrupted system call
>> How should I fix this?

> This is normal *nix behavior. Any signal, even if caught by a signal
> handler, can interrupt system calls.
> Modern *nix versions might allow to control whether a signal interrupts
> a system call or not. Check the signal documentation for your operating
> system for the control you have over signal handling. Likely,
> you cannot directly control the feature via Python, but the
> "ctypes" module allows you to call C functions directly.

The signal.siginterrupt function has been added in python 2.6 to do this.


All times are GMT. The time now is 01:54 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.