By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,091 Members | 1,546 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,091 IT Pros & Developers. It's quick & easy.

Python and Unix Commands

P: n/a
Hi,

I have a question relating to how Unix commands can be issued from
Python programs. Im am currently writing a large test script in python
and I need this script to call three other separate Python scripts,
where each one executes in it own thread of control. I would like to
use a Unix command to get each script to run in its own shell. I have
tried using the "Commands" module but after I issue the
first "command", execution blocks until I kill the called script. Is
there a way around this??

Thanks for your time,
I would really appreciate any assistance,

Tim.

Sep 19 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
> I have a question relating to how Unix commands can be issued
from
Python programs.
There are numerous methods including the commands module that
you have already discovered, the os.system() call and the
various os.popen/os.execXX calls.

Also Python 2.4 has introduced the subprocess module that
superceded most of these.
and I need this script to call three other separate Python
scripts,
where each one executes in it own thread of control.
Do you actually need to execute the python scripts as scripts,
each with its own instance of the intrerpreter? (For testing
the answer may well be yes) Or would it be possible to simply
execute the script code as a function from within a thread of
your main program?

commands/os.system/subprocess etc are usually used to launch
Unix commands or other executable files, not other Python
scripts. It's easier to interact with Python from within
Python...
use a Unix command to get each script to run in its own shell.
I have
tried using the "Commands" module but after I issue the
first "command", execution blocks until I kill the called
script. Is
there a way around this??


If you must do this then I'd suggest you need to launch a
separate
thread per shell then use commands/subprocess to launch each
interpreter/script invocation from within its own thread.

[ If you are not interested in the results you could just use
the Unix '&' character to execute the processes in the
background ]

HTH,
--
Alan G
Author of the Learn to Program web tutor
http://www.freenetpages.co.uk/hp/alan.gauld
Sep 19 '05 #2

P: n/a
>>>>> "timdoyle05" <ti********@yahoo.com> (T) wrote:
T> Hi,
T> I have a question relating to how Unix commands can be issued from
T> Python programs. Im am currently writing a large test script in python
T> and I need this script to call three other separate Python scripts,
T> where each one executes in it own thread of control. I would like to
T> use a Unix command to get each script to run in its own shell. I have
T> tried using the "Commands" module but after I issue the
T> first "command", execution blocks until I kill the called script. Is
T> there a way around this??


Use the subprocess module. If you have an older python, you could use
os.system(command + "&") or install the subprocess module yourself.
--
Piet van Oostrum <pi**@cs.uu.nl>
URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4]
Private email: pi**@vanoostrum.org
Sep 19 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.