How to schedule system calls with Python

Jeremy jlconlin at gmail.com
Thu Oct 15 22:52:21 CEST 2009


On Oct 15, 2:15 pm, TerryP <bigboss1... at gmail.com> wrote:
> On Oct 15, 7:42 pm, Jeremy <jlcon... at gmail.com> wrote:
>
> > I need to write a Python script that will call some command line
> > programs (using os.system).  I will have many such calls, but I want
> > to control when the calls are made.  I won't know in advance how long
> > each program will run and I don't want to have 10 programs running
> > when I only have one or two processors.  I want to run one at a time
> > (or two if I have two processors), wait until it's finished, and then
> > call the next one.
>
> > How can I use Python to schedule these commands?
>
> > Thanks,
> > Jeremy
>
> External programs are not system calls; external programs are invoked
> through system calls; for example system() is a function call which
> when implemented under UNIX systems invokes some form of fork() and
> exec(), and likely spawn() under Windows NT.
>
> If you want simple sequenceal execution of external programs, use a
> suitable blocking function to execute them (like system) combined with
> a simple loop over the sequence of commands to run.
>
> for prog in ['cmd1', 'cmd2', 'cmd3']:
>     os.system(prog)
>
> blah.
>
> For anything more detailed (or complex) in response, try being more
> detailed yourself ;).

This is the solution I wanted.  I thought that os.system(prog) would
return immediately regardless of how long prog takes to run.  I should
have tried this simple solution first.  Thanks for being patient.

Jeremy



More information about the Python-list mailing list