I think that the problem is an O/S permission one. Generally there are not
alot of O/S permission that are required to
stop a server. You need to be able to read config.xml for the server and that is about it. Does the user have permission to read that file?
However, to
start a server you need very different permissions unless your shell script is doing a setuid (generally considered a bad thing in Unix for a shell script). The user starting WLS will have to have write access to the files and directories under, in your case, /opt/app/bea/user_projects/domains/dev_domain. If these files are owned by someone else and they are not writeable by the current O/S user then the startup may fail in wierd and wonderful ways.