The system method of the Kernel module creates a subshell,
starts the requested command (= parameter of system method).
After creating  the subshell, the following statements of
the ruby script are executed. So, after invoking the system
method, two processes (the ruby interpreter and the subshell)
are running in parallel, at least in a multitasking
environnement. (I hope this is correct)

So this poses the following problem (actually it's not a real
problem, it's just the behaviour of the system method):

  system "program1"
  # some ruby code
  system "program2"
  # rest of the ruby script...

The programs program1 and program2 are running parallel, in
different subshells. My question: is there a way to run
program1 and program2 in sequential order? Is there a
kind of method, say system2, that has this kind of
behaviour?

  system2 "program1"
  # some ruby code
  system2 "program2"
  # rest of the ruby script...

In the code above, system2 will only be invoked if program1
is finished.

Thanks in advance.

Regards,
Paul.