If you're already running the commands as root, then su won't ask for a password normally.
But coming to think of it, root can run any command, including the opmctl command. So you could leave off the "su". Downside is that it'll run your command as root, rather than user "oracle".
Can you do an ls -l on the opmctl program? I'm guessing that there might be better alternatives than using "su" in this case. The SetUID permission bit, to be precise.
You may try running the command (su ...) in a subshell and catch all of it's output/error messages like this:
( su - oracle -c "opmnctl startall" 2>&1 ) > /tmp/test.log
I'm no expert in debugging/disabling SELinux. Maybe you can search the security forum for answers on that?
You might also try sending "su" a signal to quit (run it in the background, then use $! to get the process ID of the command, followed by a "kill" command to send the signal). This should stop it from blocking everything, and may also log/show some error messages, but it probably won't properly execute the command you want it to.