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.