Skip to content

Instantly share code, notes, and snippets.

@Eternity-Yarr
Forked from xlwww/init script java
Last active August 29, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Eternity-Yarr/f38dfe1863cbfc05d4f3 to your computer and use it in GitHub Desktop.
Save Eternity-Yarr/f38dfe1863cbfc05d4f3 to your computer and use it in GitHub Desktop.
#!/bin/bash
# chkconfig: 2345 90 90
# description: topaz
### BEGIN INIT INFO
# Provides: topaz
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Start the program
### END INIT INFO
### start set ENV:
CURENT_DIR='cd /srv/m;'
START_CMD="/srv/bin/java -cp /srv/m/lib/*:/srv/m/classes/ com.c2y.mobile.Main </dev/null >> /var/log/mobile.log 2>&1 &"
NAME="Java comp2you"
PGREP_STRING='/srv/m/classes/ com.c2y.mobile.Main'
PID_FILE='/var/run/mobile.pid'
### end ENV
killproc() {
pkill -f "$PGREP_STRING"
}
start_daemon() {
eval "$*"
}
log_success_msg() {
echo "$*"
logger "$_"
}
log_failure_msg() {
echo "$*"
logger "$_"
}
check_proc() {
pgrep -f "$PGREP_STRING" >/dev/null
}
start_script() {
check_proc
if [ $? -eq 0 ]; then
log_success_msg "$NAME is already running."
exit 0
else
start_daemon $CURENT_DIR setsid $START_CMD
fi
sleep 1
check_proc
if [ $? -eq 0 ]; then
log_success_msg "Started $NAME."
pgrep -f "$PGREP_STRING" > $PID_FILE
else
log_failure_msg "Error starting $NAME."
exit -1
fi
}
stop_script() {
check_proc
if [ $? -eq 0 ]; then
killproc -p
until [ $? -ne 0 ]; do
sleep 1
check_proc
done
check_proc
if [ $? -eq 0 ]; then
log_failure_msg "Error stopping $NAME."
exit -1
else
log_success_msg "Stopped $NAME."
rm $PID_FILE
fi
else
log_failure_msg "$NAME is not running or you don't have permission to stop it"
fi
}
check_status() {
check_proc
if [ $? -eq 0 ]; then
log_success_msg "$NAME is running."
else
log_failure_msg "$NAME is stopped."
exit -1
fi
}
case "$1" in
start)
start_script
;;
stop)
stop_script
;;
restart)
stop_script
start_script
;;
status)
check_status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment