Linux 上でのサービスとしての RM エージェントの始動

ホスト・マシンの再始動時に RM エージェントがそれ自体で確実に始動するようにするために、RM エージェントをサービスとして始動できるような方法で環境をセットアップできます。

始める前に

Windows 上でサービスとしてリソース・モニター・エージェントを始動する前に、以下の項目の設定が必要です。

このタスクについて

このトピックは、最新の Linux ディストリビューションの大半でデフォルトになっている systemd サービスに依存しています。 他の方法に従う場合には、それに合わせて説明を適応させることが必要になる可能性がありますが、提示したスクリプトは、大半の場合に有効な基礎になります。

手順

  1. ご使用のローカル・ハード・ディスク上に /opt/RMAgent-linuxservice のようなフォルダーを作成します。
  2. リソース・モニター Web ページからエージェントの Jar ファイルをダウンロードして、同じディレクトリーに保存します。 エージェントのダウンロードについて詳しくは、『RM エージェントのインストール 』を参照してください。
  3. /etc/systemd/system/RMAgent-linuxservice.service という名前の新規ファイルを作成します。
  4. 以下の内容をこの新規ファイルに追加します。
    [Unit]
    Description = Resource Monitoring Agent
    After = network.target
    
    [Service]
    Type = forking
    ExecStart = /opt/RMAgent-linuxservice/RMAgent-linuxservice.sh start
    ExecStop = /opt/RMAgent-linuxservice/RMAgent-linuxservice.sh stop
    Restart = on-failure
    RestartSec = 10
    
    [Install]
    WantedBy = multi-user.target
  5. /opt/RMAgent-linuxservice/RMAgent-linuxservice.sh という名前のもう 1 つのファイルを作成します。
    #!/bin/sh
    
    # Update with the Quality Server's host name
    sudo HCL_ONETEST_OFFLINE_TOKEN=(Enter your offline token here) java -jar (Enter the name of the downloaded jar file here)
    --serviceUrl=https://<service-hostname>/rm --projectId=<projet-id>
    
    ARGS="--serviceUrl=$SERVICE_URL --trustServiceCertificate --autoUpgradeDownloadThen=exitFailure"
    
    SCRIPT=$(readlink -f "$0")
    RMAGENT_HOME=$(dirname "$SCRIPT")
    
    # Ensure we're using the latest downloaded jar file
    PATH_TO_JAR=`ls -t $RMAGENT_HOME/com.hcl.test.rm.agent-*.jar | head -1`
    if [ -z "$PATH_TO_JAR" ]
    then
      cd $RMAGENT_HOME && { curl -k -O -J $SERVICE_URL/agent-jar; cd -; }
      PATH_TO_JAR=`ls -t $RMAGENT_HOME/com.hcl.test.rm.agent-*.jar | head -1`
      if [ -z "$PATH_TO_JAR" ]
      then
        echo "Start the server at $SERVICE_URL to allow download of the latest agent jar file"
        echo "Exiting..."
        exit 1
      fi
    fi
    SERVICE_NAME="Resource Monitoring Agent"
    #Pid file will reside in this script’s folder
    PATH_TO_PID=$RMAGENT_HOME/RMAgent-pid
    #Log file will reside in this script’s folder
    PATH_TO_LOG=$RMAGENT_HOME/RMAgent.log
    
    case $1 in
        start)
            echo "Starting $SERVICE_NAME ..."
            if [ ! -f $PATH_TO_PID ]; then
                nohup java -jar $PATH_TO_JAR $ARGS >> $PATH_TO_LOG 2>&1 &
                            echo $! > $PATH_TO_PID
                echo "$SERVICE_NAME started ..."
            else
                echo "$SERVICE_NAME is already running ..."
            fi
        ;;
        stop)
            if [ -f $PATH_TO_PID ]; then
                PID=$(cat $PATH_TO_PID);
                echo "$SERVICE_NAME stopping ..."
                kill $PID;
                echo "$SERVICE_NAME stopped ..."
                rm $PATH_TO_PID
            else
                echo "$SERVICE_NAME is not running ..."
            fi
        ;;
        restart)
            if [ -f $PATH_TO_PID ]; then
                PID=$(cat $PATH_TO_PID);
                echo "$SERVICE_NAME stopping ...";
                kill $PID;
                echo "$SERVICE_NAME stopped ...";
                rm $PATH_TO_PID
                echo "$SERVICE_NAME starting ..."
                nohup java -jar $PATH_TO_JAR $ARGS >> $PATH_TO_LOG 2>&1 &
                            echo $! > $PATH_TO_PID
                echo "$SERVICE_NAME started ..."
            else
                echo "$SERVICE_NAME is not running ..."
            fi
        ;;
    esac
    注:
    • <service-hostname> は、HCL Quality Server を実行するマシンのホスト名に置き換えます。
    • <project-id> は、サービス URL に含まれている番号で表されたプロジェクトに置き換えます。

タスクの結果

リソース・モニター・エージェントは、ホスト・マシンの再始動時に自動的に始動します。