Signals and system

Roman Neuhauser neuhauser+python-list#python.org at sigpipe.cz
Sun Apr 10 07:21:20 EDT 2005


# reply-to-group at use.net / 2005-04-10 20:55:05 +1000:
> Hi folks,
> 
> My python program needs to download a number of files.  Each file comes 
> as a list of mirrors of that file.
> 
> Currently, I am using system (os.system) to run wget.  The mechanism is 
> in a loop, so that it will try all the mirrors while wget is exiting 
> with a non-zero exit status.  This is working fine as long as the user 
> feels there is no need to interrupt it.
> 
> If wget receives a SIGINT, it stops (as expected) and returns non-zero 
> (1 from memory).  The call to system returns the same status code, 
> indicating that wget failed, but the program has no knowledge that it 
> was a signal the killed wget, rather than a failed download, and as such 
> it tries the next mirror.  I would like to be notified if wget received 
> any signals, so that the user doesn't need to repetitively press Ctrl-C 
> for each and every mirror to get the downloading process to stop.
> 
> Can someone point me in the right direction?

    http://docs.python.org/lib/os-process.html#l2h-1682

    "On Unix, the return value is the exit status of the process encoded
    in the format specified for wait()."

    http://docs.python.org/lib/os-process.html#l2h-1684

    "return a tuple containing its pid and exit status indication: a
    16-bit number, whose low byte is the signal number that killed the
    process, and whose high byte is the exit status (if the signal
    number is zero); the high bit of the low byte is set if a core file
    was produced"

-- 
How many Vietnam vets does it take to screw in a light bulb?
You don't know, man.  You don't KNOW.
Cause you weren't THERE.             http://bash.org/?255991



More information about the Python-list mailing list