I finally got the Listener, ASM, and RMANCAT instance to start up automatically on rmancat by having the following line in
su - oracle -c "/home/oracle/bin/startup.sh >>/home/oracle/log/startup.log 2>&1" &
The most important part is the & at the end because this allows the startup process to continue and initialise css without which ASM cannot start.
The startup.sh script has the following snippet to check for css availability:
TIMEOUT_CSSD_CHECKS=$[ $MAX_CSSD_CHECKS * $SLEEP_CSSD_CHECKS ]
while [ "$($CRSCTL check cssd 2>/dev/null)" != "CSS appears healthy" ]; do
NUM_CSSD_CHECKS=$[ $NUM_CSSD_CHECKS + 1 ]
if [ "$NUM_CSSD_CHECKS" -gt "$MAX_CSSD_CHECKS" ]; then
echo "$(date +%F:%T) $0 CSSD is not ready after $TIMEOUT_CSSD_CHECKS seconds - exiting"