>  기사  >  Java  >  Linux에서 Java 애플리케이션을 서비스로 실행하려면 어떻게 해야 합니까?

Linux에서 Java 애플리케이션을 서비스로 실행하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-01 23:07:29159검색

How do I run Java applications as services on Linux?

Linux에서 Java 애플리케이션을 서비스로 실행

Linux에서 Java 서버 애플리케이션을 지속적으로 작동하고 쉽게 관리하려면 다음을 수행하는 것이 바람직합니다. 서비스로 실행하세요. 이 가이드에서는 이러한 요구 사항을 해결하는 솔루션을 살펴봅니다.

서비스의 필요성

가상 호스팅 Linux 환경에서는 Java 애플리케이션을 수동으로 시작하거나 rc.local이지만 이 접근 방식에는 원활한 유지 관리에 필요한 유연성과 제어력이 부족합니다. 서버 재시작과 관계없이 애플리케이션을 관리하려면 서비스로 실행하는 것을 고려해 보십시오.

서비스 스크립트 생성

서비스 스크립트를 생성하려면 다음을 따르십시오. 단계:

#!/bin/sh
SERVICE_NAME=your_service_name
PATH_TO_JAR=full_path_to_jar_file
PID_PATH_NAME=/tmp/your_service_name-pid
case  in
    start)
        echo "Starting $SERVICE_NAME ..."

        # Check if service is already running
        if [ ! -f $PID_PATH_NAME ]; then

            # Execute Java command in the background (daemonize)
            nohup java -jar $PATH_TO_JAR > /tmp/service_name.log 2>&1 &

            # Store PID to track process
            echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is already running ..."
        fi
    ;;
    stop)
        # Check if PID file exists to ensure service is running
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME)
            echo "$SERVICE_NAME stopping ..."

            # Kill process
            kill $PID
            echo "$SERVICE_NAME stopped ..."

            # Remove PID file
            rm $PID_PATH_NAME
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
    restart)
        # Stop service
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME)
            echo "$SERVICE_NAME stopping ..."
            kill $PID
            echo "$SERVICE_NAME stopped ..."
            rm $PID_PATH_NAME
        else
            echo "$SERVICE_NAME is not running ..."
        fi

        # Start service
        echo "$SERVICE_NAME starting ..."
        nohup java -jar $PATH_TO_JAR > /tmp/service_name.log 2>&1 &
        echo $! > $PID_PATH_NAME
        echo "$SERVICE_NAME started ..."
    ;;
esac 

설치

  1. 위 스크립트를 확장자가 ".sh"인 파일(예: "myservice.sh")로 저장합니다. .
  2. 스크립트를 실행 가능하게 만듭니다: chmod x myservice.sh.
  3. 스크립트를 적절한 디렉터리(예: /etc/init.d 또는 /lib/systemd/system)에 복사합니다.

사용법

서비스를 관리하려면 다음을 사용하세요. 명령:

  • 시작: /etc/init.d/myservice start 또는 systemctl start myservice
  • 중지: /etc/init.d/myservice stop 또는 systemctl stop myservice
  • 다시 시작: /etc/init.d/myservice restart 또는 systemctl restart myservice

결론

이 가이드는 Linux에서 Java 애플리케이션을 서비스로 실행하기 위한 포괄적인 솔루션을 제공하며 효율적인 관리 및 유지 관리에 필요한 제어 및 유연성을 제공합니다.

위 내용은 Linux에서 Java 애플리케이션을 서비스로 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.