Installing the Oracle SOA Suite 11g using the silent installer in a script can be very frustrating because the Universal installer actually spawns a new process during execution. So running the following in a script will give you erroneous behavior.
The problem is that the script continues its execution path as soon as the installer spawns of its child process. Looking over the documentation didn't reveal much, but I did eventually find a solution, which of course is fairly obvious. Just append the -waitforcompletion flag to the execution line like this.
This will ensure that the internal child process completes before the initial process is considered done.
$ ./runInstaller -silent -response $RESPONSE_FILE -invPtrLoc $ORACLE_HOME/oraInst.loc -jreLoc $JAVA_HOME &
The problem is that the script continues its execution path as soon as the installer spawns of its child process. Looking over the documentation didn't reveal much, but I did eventually find a solution, which of course is fairly obvious. Just append the -waitforcompletion flag to the execution line like this.
$ ./runInstaller -silent -response $RESPONSE_FILE -invPtrLoc $ORACLE_HOME/oraInst.loc -jreLoc $JAVA_HOME -waitforcompletion &
This will ensure that the internal child process completes before the initial process is considered done.