Postado originalmente por
trober
Sem crise Lucas
Abaixo disponho código que testei no Ubuntu. No meu teste, usei Python, em vez de Java, e o payload foi um
builtin, sem o parâmetro -jar. Readaptei para seu aplicativo, após ajustes, e publico o script para que faça os devidos testes
Tirei o "touch", por ser redundante (afinal você já tinha uma saída ">"), e fiz ajustes num grep, que estava dando erro de "
invalid max count". Também melhorei o retorno de
status, adicionando o número do processo.
Código :
### BEGIN INIT INFO
# Provides: TRANSX
# Required-Start: $syslog $remote_fs
# Required-Stop: $syslog
# Default-Start: 3 5
# Default-Stop:
# Description: Servico TRANSX
### END INIT INFO
SERV=transx
APPPATH="/transx/recargametro"
JAVA_BIN="/root/jdk1.7.0_25/bin/java"
PAYLOAD="transx-1.0.103.jar"
PIDFILE="/var/run/$SERV.pid"
start() {
echo -n "Starting $SERV: "
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
echo $SERV already running $PID.
exit 2;
else
cd $APPPATH
$JAVA_BIN -jar $PAYLOAD &> /dev/null &
RETVAL=$?
[ $RETVAL -eq 0 ] && echo `ps aux | grep -- "$PAYLOAD" | grep -v grep | awk {'print $2'}` > $PIDFILE
echo OK
return $RETVAL
fi
}
stop() {
echo -n "Stopping $SERV: "
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
kill $PID && rm -f $PIDFILE
echo OK
return 0
else
echo "not running or pid file is gone."
fi
}
status() {
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
echo "running at PID" $PID.
return 0
else
echo "not running"
return 1
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
*)
echo "Usage: {start|stop|restart}"
exit 1
;;
esac
exit $?
Faça o teste, e mantenha-nos informado