Question

J'ai écrit le script init.d qui suppose pour exécuter Java CLI proccess.
Le problème est que quand je l'arrête, je reçois [VAIN] et le proccess est encore en cours d'exécution.
merci

#!/usr/bin/env bash
#
# chkconfig:    345 97 03
#
# processname:  quotes-srv
#
#
# source function library

. /etc/rc.d/init.d/functions

NAME=quotes-srv

start() {
    echo -n $"Starting $NAME: "
    daemon +19 java -Dlog4j.configuration="file:/opt/quotes/properties/log4j/log4j.properties"  -Dproperties_folder="/opt/quotes/properties/app/" -jar /opt/quotes/trade-0.0.1-SNAPSHOT-jar-with-dependencies.jar & 
touch /var/lock/subsys/$NAME
}

stop() {
    echo -n $"Stopping $NAME: "
    killproc $NAME
    echo
    rm -f /var/lock/subsys/$NAME
}

restart() {
    stop
    start
}

case "$1" in
  start)
    start
    ;;
  stop) 
    stop
    ;;
  restart|force-reload|reload)
    restart
    ;;
  condrestart|try-restart)
    [ -f /var/lock/subsys/$NAME ] && restart
    ;;
  status)
    status $NAME

    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
    exit 1
esac

exit 0
Était-ce utile?

La solution

killproc mettra fin à des programmes dans la liste des processus qui correspondent au nom NAME $

Strictement parlant cela est dans votre cas java .

S'il est le seul java que vous pouvez traiter aller mettre java dans $ NOM

Si vous exécutez d'autres services de java, vous devez trouver un autre moyen d'arrêter votre processus java, par exemple mettre le PID dans le répertoire / var / lock / subsys / $ fichier NAME puis tuer le processus en utilisant le pid.

Au moins debian il y a un outil agréable qui contribue à cela, mais je ne suis pas sûr qu'il existe pour  redhat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top