START-Stop-Daemon을 사용하여 Linux에서 Java 서비스를 중지 할 수 없습니다

StackOverflow https://stackoverflow.com/questions/1801081

  •  05-07-2019
  •  | 
  •  

문제

Ubuntu Linux에서 Java 데몬으로 실행되는 프로세스가 있습니다.

아래 d_stop ()에서 start-stop-daemon 명령을 사용하여 중지 할 수 없습니다.

프로세스 ID는 시작 프로세스 중에 $ PIDFILE에 파일에 기록해야하지만 작동하지 않습니다.

다음은 내 스크립트입니다.

#! /bin/sh
#
#
#
# Version:      @(#)daemon  1.0
#

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="xxxxx"
NAME="xxxxx"
USER="root"
HOME="/home/root"
MAIN="/opt/MYAPP/lib/NodeManager.jar"
APP_JAVAHOME="/home/owner/jdk1.6.0_17"
DAEMON="$APP_JAVAHOME/bin/java -server -Djava.awt.headless=true -jar $MAIN"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.

test -x $APP_JAVAHOME/bin/java || exit 0

# ---------------------------------------
# Function that starts the daemon/service
# ---------------------------------------
d_start()
{
su -p -s /bin/sh - $USER -c "$DAEMON &> /dev/null & echo $!" > $PIDFILE
}


# --------------------------------------
# Function that stops the daemon/service
# --------------------------------------
d_stop()
{
start-stop-daemon --stop --quiet --pidfile $PIDFILE
#/bin/ps -ef | grep java | grep -v grep | awk '{print $2}
}

case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
도움이 되었습니까?

해결책

사용할 수없는 이유가 있습니까? start-stop-daemon 프로세스를 시작하려면 - 이와 같은 것이 당신이 찾고있는 것입니다.

DAEMON="$APP_JAVAHOME/bin/java"
ARGS="-server -Djava.awt.headless=true -jar $MAIN"

start-stop-daemon --start --pidfile "$PIDFILE" --chuid "$USER" --background --make-pidfile --startas "$DAEMON" -- $ARGS

환경 변수가 필요한 경우 시작 스크립트로 설정하고 내보내십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top