#!/bin/bash SERVICE_NAME="Generic System" PATH_TO_EXEC="/home/middleware/git/gs-demo/" # Generate the temporary file used to store the pid init() { if [ ! -d "$HOME/log/" ]; then mkdir -p "HOME/log/"; fi if [ -d "$HOME/.tmp/" ]; then touch "$HOME/.tmp/GenericSystem-pid"; else mkdir -p "$HOME/.tmp" && touch "$HOME/.tmp/GenericSystem-pid"; fi } PID_PATH_NAME="$HOME/.tmp/GenericSystem-pid" # Function to start the app do_start(){ echo "Starting $SERVICE_NAME ..." init; PID=$(cat "$PID_PATH_NAME"); if [ -z $PID ]; then cd $PATH_TO_EXEC; mvn clean validate install exec:java -Dexec.mainClass="org.genericsystem.demo.App" -Dexec.args="8080" 2>>/home/middleware/log/error.log >>/home/middleware/log/genericsystem.log & echo $! > $PID_PATH_NAME echo "$SERVICE_NAME is started with pid $(cat $PID_PATH_NAME)" else echo "$SERVICE_NAME is already running ..." # Try a restart? fi } # Function to stop the app do_stop() { echo "Stopping $SERVICE_NAME ..." init; PID=$(cat "$PID_PATH_NAME"); if [ -z $PID ]; then echo "$SERVICE_NAME is not running" else echo "$SERVICE_NAME is stopping ..." echo "killing processus : $PID" kill $PID; if [ $? -eq 0 ]; then echo "$SERVICE_NAME is stopped" rm $PID_PATH_NAME else echo "Unable to terminate $SERVICE_NAME (exit code = $?)" fi fi } # Function to check the status check_status() { init; PID=$(cat "$PID_PATH_NAME"); if [ -z $PID ]; then echo "$SERVICE_NAME is not running" else echo "$SERVICE_NAME is running with pid = $PID" fi } # Main case $1 in start) do_start ;; stop) do_stop ;; restart) do_stop && do_start ;; status) check_status ;; *) echo "Usage: genericsystem {start|stop|restart|status}" >&2 ;; esac