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