This goes in /etc/init/oracledb.conf:
description "Oracle Database" # Based on blog post at # https://cdivilly.wordpress.com/2010/10/28/ubuntu-upstart-script-for-oracle-database/ # The location of the Oracle install env ORACLE_HOME=/home/oracle/database/product/11.2.0/dbhome_1 # The user to execute Oracle as env ORACLE=oracle start on runlevel  stop on runlevel  expect fork pre-start script logger "Starting Oracle DB" su - $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" end script post-stop script logger "Stopping Oracle DB" su - $ORACLE -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" end scriptThen /etc/init/oid.conf for OID, OVD and the WebLogic server where I run ODSM:
start on started oracledb stop on stopping oracledb # This is good for debugging purposes but it's a bad idea to leave # this on long term. #console output # this starts OPMN, OID and OVD pre-start script logger "pre-start for OID/OVD" /bin/su - oracle -c "/home/oracle/middleware/asinst_1/bin/opmnctl startall" logger "pre-start for OID/OVD complete" end script # and this stops them post-stop script logger "pre-stop for OID/OVD complete" /bin/su - oracle -c "/home/oracle/middleware/asinst_1/bin/opmnctl stopall" logger "pre-stop for OID/OVD complete" end script # this is the AdminServer only: exec /bin/su - oracle -- /home/oracle/middleware/user_projects/domains/IDMDomain/bin/startWebLogic.shThe important thing there is the "start on started oracledb" stanza. What that says in English is much as you would expect - "start this once the 'oracledb' service is started". The "stop on" does the same for when the database is being stopped; which will cause Upstart to stop OID and OVD before it tries to stop the database. Upstart works out the dependencies automatically so no need to worry about numbers or pinging the database via sqlplus or tnsping. The Upstart config for the OAM Server looks the much the same:
start on started oracledb stop on stopping oracledb exec /bin/su - oracle -- /home/oracle/middleware/user_projects/domains/IAMDomain/bin/startWebLogic.shEnjoy.