[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

popening a process in a specific working directory

Michael Torrie

3/5/2008 5:02:00 AM

I have a small multi-threaded program that spawns a number of threads
that each spawn a particular process in a particular temporary
directory. My problem is that using os.chdir to change the working
directory before popening the process doesn't always work because
another thread might change the cwd as it starts, before the process in
this thread can start up.

I'm currently using popen2.Popen4. Is there a way to properly specify a
particular working directory when launching a process in python? I've
hacked around my problem by writing a bash wrapper script that accepts
the working directory as a parameter, changes the directory, then spawns
the original program with the arguments. This works, but I'd like a
better way.

Michael
2 Answers

Dennis Lee Bieber

3/5/2008 7:12:00 AM

0

On Tue, 04 Mar 2008 22:01:57 -0700, Michael Torrie <torriem@gmail.com>
declaimed the following in comp.lang.python:

> I have a small multi-threaded program that spawns a number of threads
> that each spawn a particular process in a particular temporary
> directory. My problem is that using os.chdir to change the working
> directory before popening the process doesn't always work because
> another thread might change the cwd as it starts, before the process in
> this thread can start up.
>

Sounds like a variation of a classical "critical section"...

Wrap the os.chdir and popen calls with a common lock...

spawnLock.acquire()
os.chgdir(...)
...popen*...
spawnLock.release()

--
Wulfraed Dennis Lee Bieber KD6MOG
wlfraed@ix.netcom.com wulfraed@bestiaria.com
HTTP://wlfraed.home.netcom.com/
(Bestiaria Support Staff: web-asst@bestiaria.com)
HTTP://www.bestiaria.com/

Sion Arrowsmith

3/5/2008 12:23:00 PM

0

Michael Torrie <torriem@gmail.com> wrote:
>I'm currently using popen2.Popen4. Is there a way to properly specify a
>particular working directory when launching a process in python?

Switch to using subprocess.Popen and specify the cwd argument.

--
\S -- siona@chiark.greenend.org.uk -- http://www.chaos.org...
"Frankly I have no feelings towards penguins one way or the other"
-- Arthur C. Clarke
her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump