Fedora 13 init.d Skript, kann nicht aufhören
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
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.