[Tutor] new topic draft

Alan Gauld alan.gauld at freenet.co.uk
Wed Nov 16 21:57:58 CET 2005


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