Skip to content

Instantly share code, notes, and snippets.

@teggr
Last active December 28, 2015 16:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save teggr/7528590 to your computer and use it in GitHub Desktop.
Save teggr/7528590 to your computer and use it in GitHub Desktop.
Executable Java Jar file init.d script Credits: http://werxltd.com/wp/2012/01/05/simple-init-d-script-template/
#!/bin/sh
#
# chkconfig: 2345 20 80
# description: java app daemon
#
DAEMON_PATH="/opt/APP_NAME/bin"
DAEMON='java -jar ../APP_NAME.jar'
DAEMONOPTS=""
NAME=serviced
DESC="My daemon description"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
case "$1" in
start)
printf "%-50s" "Starting $NAME..."
cd $DAEMON_PATH
PID=`$DAEMON $DAEMONOPTS > /dev/null 2>&1 & echo $!`
echo Saving PID $PID to $PIDFILE
if [ -z $PID ]; then
printf "%s\n" "Fail"
exit 1
else
echo $PID > $PIDFILE
printf "%s\n" "Ok"
fi
;;
status)
printf "%-50s" "Checking $NAME..."
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
printf "%s\n" "Process dead but pidfile exists"
else
echo "Running"
fi
else
printf "%s\n" "Service not running"
fi
;;
stop)
printf "%-50s" "Stopping $NAME"
PID=`cat $PIDFILE`
cd $DAEMON_PATH
if [ -f $PIDFILE ]; then
#could remove -9 to gracefully terminate rather than kill
kill -9 $PID
printf "%s\n" "Ok"
rm -f $PIDFILE
else
printf "%s\n" "pidfile not found"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {status|start|stop|restart}"
exit 1
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment