Frage

Ich schrieb init.d-Skript, dass suppose laufen Java-CLI proccess.
Das Problem ist, dass, wenn ich es stoppen, hat sich [gescheitert] und die proccess läuft noch.
Dank

#!/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
War es hilfreich?

Lösung

killproc wird beendet Programme in der Prozessliste, die den Namen $ NAME übereinstimmen

Genau genommen dies in Ihrem Fall ist Java .

Wenn es das einzige ist Java-Prozess können Sie gehen und Put-java in $ name

Wenn Sie andere Java-Dienste laufen haben Sie einen anderen Weg zu finden, Ihre Java-Prozess zu stoppen, z.B. die PID im Verzeichnis / var / lock / subsys / $ name Datei setzen und dann den Prozess zu töten, die pid verwenden.

Auf mindestens debian gibt es ein nettes Tool, das mit, das hilft, aber ich bin nicht sicher, ob es existiert für  redhat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top