Pregunta

escribí guión init.d que supone que debe ejecutar Java CLI proccess.
El problema es que cuando me detengan, me sale el mensaje [Error] y la proccess sigue funcionando.
gracias

#!/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
¿Fue útil?

Solución

killproc terminará programas en la lista de procesos que coinciden con el nombre $ NOMBRE

Estrictamente hablando, esto es, en su caso java .

Si se trata de la única java procesar se puede ir y puesto en java $ NOMBRE

Si ejecuta otros servicios Java usted tiene que encontrar otra manera de detener su proceso de Java, por ejemplo, poniendo el PID en el SUBSYS / $ nombre de archivos / var / lock / y luego matar el proceso mediante el pid.

Por lo menos en Debian hay una buena herramienta que ayuda con esto, pero no estoy seguro de que existe para  redhat.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top