[Tutor] new topic draft
Johan Geldenhuys
johan at accesstel.co.za
Thu Nov 17 18:56:05 CET 2005
That will be great. In the "@TODO" part you will see that I still need
to take the output from the command and capture that into a file. Can
you help me with that?
Johan
Alan Gauld wrote:
> Thanks, I may use that as one of the example programs if
> you don't mind?
>
> Alan G.
>
>
> ----- Original Message ----- From: "Johan Geldenhuys"
> <johan at accesstel.co.za>
> To: "Alan Gauld" <alan.gauld at freenet.co.uk>
> Cc: "Python Tutor list" <tutor at python.org>
> Sent: Wednesday, November 16, 2005 8:12 AM
> Subject: Re: [Tutor] new topic draft
>
>
>> Alan,
>>
>> You may remember that I asked questions on killing a process, a while
>> back,
>>
>> Sice this is relatedto the tutorial that yu are writing, this was the
>> best solution that worked for me to killa process for a command that
>> keeps on running like eg. 'tcpdump'.
>>
>> HTH
>>
>> Johan
>> BTW, There will a be many a felllow Pythonists that will benefit from a
>> tut like this, great work !!
>>
>>
>> Alan Gauld wrote:
>>
>>> I've just added an incomplete draft copy of my latest tutorial topic
>>> on using the Operating System from Python. The material that's
>>> there discusses the role of the OS and looks at file handling
>>> usng os/os.path/shutil etc.
>>>
>>> http://www.freenetpages.co.uk/hp/alan.gauld/tutos.htm
>>>
>>> If anyone would like to take a look and provide feedback on
>>> general direction/depth etc that'd be greatly appreciated.
>>>
>>> TIA,
>>>
>>> Alan G
>>> Author of the learn to program web tutor
>>> http://www.freenetpages.co.uk/hp/alan.gauld
>>>
>>>
>>> _______________________________________________
>>> Tutor maillist - Tutor at python.org
>>> http://mail.python.org/mailman/listinfo/tutor
>>>
>>>
>>>
>>
>
>
> --------------------------------------------------------------------------------
>
>
>
>> """
>> This class will execute the command, let it run for 5 seconds and
>> kill the process.
>>
>> ::Author: Johan Geldenhuys
>> johan at accesstel.co.za
>>
>> ::Version: 0.0.1
>>
>> ::Date last updated: 2005-11-03
>>
>> ::Changes:
>>
>> :: TODO: Capture the output from line 41 to a file.
>> """
>>
>> import os, signal, time
>>
>> class command(object):
>>
>> def __init__(self):
>>
>> pass
>>
>>
>> def kill(self, pid, signal=signal.SIGTERM):
>> try:
>>
>> print "trying to kill pid...", pid
>> os.kill(pid, signal)
>> #os.waitpid(pid, 0)
>> print "Killed %d"%pid
>> except:
>> print "couldn't stop process"
>>
>> def main(self, interface):
>>
>> self.interface = interface
>> self.pid = os.fork()
>>
>> if self.pid == 0:
>>
>> os.execvp('tcpdump', ['tcpdump', '-npi', self.interface])
>>
>> print 'PID: ',self.pid
>> print 'Let it run for 5 seconds...'
>> time.sleep(5)
>> self.kill(self.pid)
>>
>>
>> if __name__ == '__main__':
>> print "starting test"
>> c = command()
>> c.main('eth0')
>>
>>
>
>
More information about the Tutor
mailing list