Threading in Python, Please check the script

sohcahtoa82 at gmail.com sohcahtoa82 at gmail.com
Wed Jan 14 13:55:05 EST 2015


On Tuesday, January 13, 2015 at 10:22:32 PM UTC-8, Robert Clove wrote:
> Hi All,
> 
> I have made a script in which i have started two thread named thread 1 and thread 2.
> In thread 1 one function will run named func1 and in thread 2 function 2 will run named func 2.
> Thread 1 will execute a command and wait for 60 seconds. 
> Thread 2 will run only till thread 1 is running .
> Again after that the same process continues in while after a break of 80 Seconds.
> 
> I am a beginner in python.
> Please suggest what all i have done wrong and how to correct it.
> 
> 
> #!/usr/bin/python
> 
> import threading
> import time
> import subprocess
> import datetime
> import os
> import thread
> 
> thread.start_new_thread( print_time, (None, None))
> thread.start_new_thread( print_time1, (None, None))
> command= "strace -o /root/Desktop/a.txt -c ./server"
> final_dir = "/root/Desktop"
> exitflag = 0
> # Define a function for the thread
> def print_time(*args):
>     os.chdir(final_dir)
>     print "IN first thread"
>     proc = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>     proc.wait(70)
>     exitflag=1
>    
> def print_time1(*args):
>     print "In second thread"
>     global exitflag
>     while exitflag:
>         thread.exit()
>         #proc = subprocess.Popen(command1,shell=True,stdout=subprocess.PIPE, sterr=subprocess.PIPE)
> 
> 
> 
> # Create two threads as follows
> try:
>     while (1):
>         t1=threading.Thread(target=print_time)
>         t1.start()
>         t2=threading.Thread(target=print_time1)
>         t2=start()
>         time.sleep(80)
>         z = t1.isAlive()
>         z1 = t2.isAlive()
>         if z:
>             z.exit()
>         if z1:
>             z1.exit()
>            threading.Thread(target=print_time1).start()
>            threading.Thread(target=print_time1).start()
>         print "In try"
> except:
>    print "Error: unable to start thread"
> 
>  

In addition to what others have said, it looks like you're designing your script to run as root.  This is a Very Bad Idea(tm) and has the potential to destroy your system if you make a minor mistake and end up blowing away vital system files.

If you want to be able to run the script anywhere but have the results saved in your home directory, then look into calling os.path.expanduser('~/Desktop') to write to the Desktop directory in your home directory.



More information about the Python-list mailing list