Run GlassFish V3 as a non-root Service
The above link covers Fedora/Ubuntu, but works for Red Hat as well.
Recently I was setting up a server that was to run Glassfish V3 on Red Hat EL5. The problem here is that Glassfish does not provide a start-up script for unix based systems. Also, the asadmin tool is unable to add Glassfish as a service like it does in Windows and Solaris, so where does that leave us, writing our own init script.
I will be honest, I'm not really a hardcore LINUX user, so there may be a better way to do this, but here's what I did.
In the {gfinstall}/glassfish/bin directory I created a new file, simply named glassfish. In this file I added the following script:
#!/bin/sh ### BEGIN INIT INFO # Provides: glassfish # Required-Start: $network # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: Glassfish Web Server # Description: Glassfish Web Server ### END INIT INFO gfbin=/path/to/your/gfinstall/glassfish/bin function usage { echo "Must pass command line param start or stop" } while [ "$1" != "" ]; do case $1 in start ) nohup $gfbin/startserv > /dev/null & ;; stop ) $gfbin/stopserv ;; * ) usage exit 1 esac shift done
This script accepts the parameters start and stop, and that is all. No restart, no help, just start and stop. I did this because, it's really the only functionality you need, and it would have been a pain to try to do the restart (the stopserv command exits before the server has shut down).
Next, I linked this script into the /etc/init.d folder (using 'ln -s'). From that point, we can do a 'chkconfig glassfish on' and everything will be good to go. The information in the '### BEGIN INIT INFO' is what enables chkconfig to work. So don't remove it, you might want to change it though, depending on what you need.
No comments:
Post a Comment