A função Stop no arquivo init.d não funciona

0

Meu requisito é poder iniciar / parar um aplicativo java específico (nGrinder) como um serviço. Seguindo este link , escrevi um arquivo para o init.d da seguinte forma:

#!/bin/sh
#
# /etc/init.d/ngrinder_controller
# Subsystem file for "ngrinder_controller" server
#
# Below line defines the run levels it will run on, start prio, kill prio
# chkconfig: 2345 95 05
# description: ngrinder_controller server daemon
#
# processname: ngrinder_controller
# pidfile: /var/run/ngrinder_controller.pid

# source function library
#. /etc/rc.d/init.d/functions

# pull in sysconfig settings
#[ -f /etc/sysconfig/mySystem ] && . /etc/sysconfig/mySystem

RETVAL=0
prog="ngrinder_controller"
exe="java -XX:MaxPermSize=200m -jar  /root/ngrinder-controller-3.3.war"
start() {
        echo "Starting $prog:"
        nohup ${exe} >/dev/null 2>&1 &
        RETVAL=$?
        PID=$!
        #[ "$RETVAL" = 0 ] && touch /var/lock/subsys/$prog #Change 1
        echo
}

stop() {
        echo -n $"Stopping $prog:"
        killproc $prog -TERM
        #kill -15 $PID
        RETVAL=$?
        [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/$prog
        echo
}

reload() {
        echo -n $"Reloading $prog:"
        killproc $prog -HUP
        RETVAL=$?
        echo
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        restart)
                stop
                start
                ;;
        reload)
                reload
                ;;
        condrestart)
                if [ -f /var/lock/subsys/$prog ] ; then
                        stop
                        # avoid race
                        sleep 3
                        start
                fi
                ;;
        status)
                status $prog
                RETVAL=$?
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
                RETVAL=1
esac
exit $RETVAL

Agora, enquanto a função start funciona, a parada não. E diz que o comando killproc não foi encontrado. Além disso, como o arquivo obtém o PID do aplicativo? E em terceiro lugar, quando eu não comento a linha [ "$RETVAL" = 0 ] && touch /var/lock/subsys/$prog , recebo um erro porque eu não tenho nem mesmo uma pasta subsys bloqueada. Estou correndo no Ubuntu 14.04. Alguma idéia?

    
por Izy- 29.09.2016 / 10:42

0 respostas