Estou tentando executar um aplicativo java como um serviço. Usei o guia este framework da primavera Depois de juntar alguns scripts de diferentes fontes , Acabei com algo como abaixo:
# INIT Script
######################################
# Written by Juan Carlos Gonzalez.
# Modified by Joseph Kodjo-Kuma
# Name of app ( codingpains, chopent we, etc )
APP=gs-spring
# Name of the user to run as
USER=javaappuser
# Location of application's details
JAR_FULL_PATH=/home/vagrant/gs-spring-boot-0.1.0.jar
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"
PID_PATH_NAME=/tmp/gs-spring-app.pid
case "$1" in
start)
echo "Starting $APP !!!"
if [ ! -f $PID_PATH_NAME ]; then
/bin/su - $USER -c "export JAVA_HOME=$JAVA_HOME"
/bin/su - $USER -c "/usr/bin/nohup java -server -Xms64m -Xmx128m -XX:MaxPermSize=128m -XX:+CMSClassUnloadingEnabled -jar $JAR_FULL_PATH /tmp 2>> /dev/null >> /dev/null" &
echo $! > $PID_PATH_NAME
echo "$APP started !!!"
else
echo "$APP is already running !!!"
fi
;;
stop)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "Stopping $APP !!!"
rm $PID_PATH_NAME
kill $PID
echo "$APP stopped successfully !!!"
#rm $PID_PATH_NAME
else
echo "$APP is not running !!!"
fi
;;
restart)
$0 stop
sleep 5
$0 start
;;
*)
echo "Usage: /etc/init.d/$APP {start|restart|stop}"
exit 1
;;
esac
exit 0
Agora, o script acima funciona, o serviço é iniciado, mas quando tentei verificar se ele está executando o aplicativo com javaappuser
using ps, recebo vários processos em execução, o que é meio confuso.
vagrant@vagrant:~$ ps aux | grep java
root 2350 0.0 0.7 52544 3620 pts/0 S 09:19 0:00 /bin/su - javaappuser -c /usr/bin/nohup java -server -Xms64m -Xmx128m -XX:MaxPermSize=128m -XX:+CMSClassUnloadingEnabled -jar /home/vagrant/gs-spring-boot-0.1.0.jar /tmp 2>> /dev/null >> /dev/null
javaapp+ 2351 0.0 0.6 23344 3192 ? Ss 09:19 0:00 -su -c /usr/bin/nohup java -server -Xms64m -Xmx128m -XX:MaxPermSize=128m -XX:+CMSClassUnloadingEnabled -jar /home/vagrant/gs-spring-boot-0.1.0.jar /tmp 2>> /dev/null >> /dev/null
javaapp+ 2352 94.3 25.8 2051872 129308 ? Sl 09:19 0:02 java -server -Xms64m -Xmx128m -XX:MaxPermSize=128m -XX:+CMSClassUnloadingEnabled -jar /home/vagrant/gs-spring-boot-0.1.0.jar /tmp
vagrant 2365 0.0 0.4 16572 2320 pts/0 S+ 09:19 0:00 grep --color=auto java
Agora não tenho certeza se é para se comportar dessa maneira ou se estou definitivamente fazendo algo errado
Por favor, ajude e obrigado antecipadamente