ホームページ  >  記事  >  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 

インストール

    上記のスクリプトを拡張子「.sh」を持つファイルとして保存します (例: 「myservice.sh」)。
  1. スクリプトを実行可能にします: chmod x myservice.sh.
  2. スクリプトを適切なディレクトリ (/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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。