SystemdにHULFT登録

OrangeLab. 運営チーム
作成日時: - 更新日時:
Avatar
当記事は、コミュニティ掲載記事執筆者募集よりご寄稿いただいた記事となります。
柔軟なプロセス管理につながるTipsを詳細な手順と共にご紹介いただきます。

はじめに

はじめまして、株式会社イーセクターのHULFTサポート担当です。
(弊社では、20年以上HULFTのサポートを行っており、現在200社以上のHULFTユーザ様と契約しています。)

RedHat7からSystemdという新しいシステム管理機能となりました。
その新しい機能によるHULFTデーモンを自動起動・自動停止する設定手順を記事にしたいと思います。

なお、下記は、方針・前提となります。
  • Systemdの操作に慣れることも考慮し、HULFT専用のシェルスクリプトを作成しません。
  • OS停止時にHULFTデーモンが確実に自動停止したことを確認するため、HULFTデーモン起動・停止時のログを保存するようにします。
  • HULFT8 for Linux-Enterpriseを /opt/hulft へインストールしたこととします。
    (HULFT8 for Linux-Standerdに対応していないことをご了承ください。)
※株式会社イーセクターは、本記事の文章・情報等に基づいて被ったいかなる被害についても、一切責任を負いかねます。
また、本記事に関するご意見・ご質問は、下部コメント欄、コミュニティ、もしくはお問い合わせ窓口にお寄せ下さい。

手順

  1. デフォルトターゲット(SysVinitにおけるランレベル)を確認
    HULFTデーモンの起動は、システムの初期が終了した後とすることから、作業対象のシステムのデフォルトターゲットを確認します。
    「graphical.target」は、後の作業で使用するため、メモします。
    ※今回の手順は、「graphical.target」環境で実施しています。
    $ systemctl get-default
    graphical.target
  2. HULFT用環境ファイル(EnvironmentFile)を作成
    HULFTデーモンを起動する前にHULFT用の環境変数を設定します。
    今回は、HULFT専用のシェルスクリプトを使用しないため、HULFT用環境ファイルを作成します。
    /etc/sysconfig ディレクトリに移動します。
    $ cd /etc/sysconfig
    HULFT用環境設定ファイル(hulft)を作成します。
    $ sudo vi hulft
    ※hulftファイルの中は、以下のように記載します。
    # EnvironmentFile of hulsndd, hulrcvd, hulobsd
    HULPATH=/opt/hulft/etc
    HULEXEP=/opt/hulft/bin
    PATH=/opt/hulft/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  3. HULFT用Unitファイルの作成
    HULFTデーモンを自動起動・自動停止するためのUnitファイルを作成します。
    配信・集信・要求受付で合計3ファイル作成します。
    /etc/systemd/systemディレクトリに移動します。
    $ cd /etc/systemd/system/
    配信デーモン用のUnitファイルを作成します。
    $ sudo vi hulsndd.service
    hulsndd.serviceファイルの中は、以下のように記載します。
    [Unit]
    Description=HULFT Send Daemon
    After=graphical.target

    [Service]
    EnvironmentFile=/etc/sysconfig/hulft
    ExecStart=/bin/sh -c "hulclustersnd -start -m && ps -ef f | grep \
    [h]ulsndd | grep -v '\\\\_' | awk '{printf $2}' >/var/run/hulsndd.pid"
    ExecStop=/opt/hulft/bin/hulclustersnd -stop -f -m
    PIDFile=/var/run/hulsndd.pid
    Type=forking
    Restart=no
    LimitCORE=infinity

    [Install]
    WantedBy=graphical.target
    集信デーモン用のUnitファイルを作成します。
    $ sudo vi hulrcvd.service
    hulrcvd.serviceファイルの中は、以下のように記載します。
    [Unit]
    Description=HULFT Receive Daemon
    After=graphical.target

    [Service]
    EnvironmentFile=/etc/sysconfig/hulft
    ExecStart=/bin/sh -c "hulclusterrcv -start -m && ps -ef f | grep \
    [h]ulrcvd | grep -v '\\\\_' | awk '{printf $2}' >/var/run/hulrcvd.pid"
    ExecStop=/opt/hulft/bin/hulclusterrcv -stop -f -m
    PIDFile=/var/run/hulrcvd.pid
    Type=forking
    Restart=no
    LimitCORE=infinity

    [Install]
    WantedBy=graphical.target
    要求受付デーモン用のUnitファイルを作成します。
    $ sudo vi hulobsd.service
    hulobsd.serviceファイルの中は、以下のように記載します。
    [Unit]
    Description=HULFT Request Acknowledge Daemon
    After=graphical.target

    [Service]
    EnvironmentFile=/etc/sysconfig/hulft
    ExecStart=/bin/sh -c "hulclusterobs -start -m && ps -ef f | grep \
    [h]ulobsd | grep -v '\\\\_' | awk '{printf $2}' >/var/run/hulobsd.pid"
    ExecStop=/opt/hulft/bin/hulclusterobs -stop -f -m
    PIDFile=/var/run/hulobsd.pid
    Type=forking
    Restart=no
    LimitCORE=infinity

    [Install]
    WantedBy=graphical.target
  4. 作成したUnitファイルの有効化
    [3.]で設定した内容を有効化します。
    配信デーモン用ユニットファイルを有効化します。
    $ sudo systemctl enable hulsndd.service
    Created symlink from /etc/systemd/system/graphical.target.wants/hulsndd.service to /etc/systemd/system/hulsndd.service.
    集信デーモン用ユニットファイルを有効化します。
    $ sudo systemctl enable hulrcvd.service
    Created symlink from /etc/systemd/system/graphical.target.wants/hulrcvd.service to /etc/systemd/system/hulrcvd.service.
    要求受付デーモン用ユニットファイルを有効化します。
    $ sudo systemctl enable hulobsd.service
    Created symlink from /etc/systemd/system/graphical.target.wants/hulobsd.service to /etc/systemd/system/hulobsd.service.
  5. 有効化されたことを確認
    念のため、有効化されたことを確認します。
    $ sudo systemctl list-unit-files -t service | grep hul
    hulobsd.service enabled
    hulrcvd.service enabled
    hulsndd.service enabled
  6. systemdの起動
    起動する場合、[4.]で使用したコマンドの[enable]を[start]に置き換えてコマンドを実行します。
    配信デーモン用ユニットを起動します。
    $ sudo systemctl start hulsndd.service
    集信用デーモン用ユニットを起動します。
    $ sudo systemctl start hulrcvd.service
    要求受付デーモン用ユニットを起動します。
    $ sudo systemctl start hulobsd.service
  7. systemdの停止
    停止する場合、[4.]で使用したコマンドの[enable]を[stop]に置き換えてコマンドを実行します。
    配信デーモン用ユニットを停止します。
    $ sudo systemctl stop hulsndd.service
    集信用デーモン用ユニットを停止します。
    $ sudo systemctl stop hulrcvd.service
    要求受付デーモン用ユニットを停止します。
    $ sudo systemctl stop hulobsd.service
  8. ジャーナル保存用ディレクトリ作成
    デフォルトで (/etc/systemd/journald.conf 内のStorage= に auto 指定)、journal は /var/log/journal/ へ書き込みを行います。
    $ sudo mkdir /var/log/journal
  9. ジャーナル保存の上限設定
    ジャーナルファイルが大きいと困るので、上限を設定します。
    $ cp -p /etc/systemd/journald.conf /etc/systemd/journald.conf.org
    $ vi /etc/systemd/journald.conf
    ※journald.confファイルの中は、以下のように記載します。
    【略】
    SystemMaxUse=300M
    【略】
  10. 設定反映
    ジャーナルを再起動することで、設定を反映します。
    $ sudo systemctl restart systemd-journald
  11. HULFTデーモン起動・停止のジャーナルを表示
    HULFTデーモン起動・停止のジャーナルを確認します。
    なお、ページャーを使用しない場合、"--no-pager"を指定します。
    配信デーモンのジャーナルを確認します。
    $ sudo journalctl -u hulsndd.service -l --no-pager
    集信デーモン用のジャーナルを確認します。
    $ sudo journalctl -u hulrcvd.service -l --no-pager
    要求受付デーモン用のジャーナルを確認します。
    $ sudo journalctl -u hulobsd.service -l --no-pager
  12. 日時指定でジャーナルを表示
    日時指定をする場合、下記のようなコマンドで可能です。
    配信デーモンのジャーナルを確認します。
    $ sudo journalctl -u hulsndd.service --since="2019-07-01 00:00:00" --until="2099-08-05 00:00:00" -l --no-pager
    集信デーモン用のジャーナルを確認します。
    $ sudo journalctl -u hulrcvd.service --since="2019-07-01 00:00:00" --until="2099-08-05 00:00:00" -l --no-pager
    要求受付デーモン用のジャーナルを確認します。
    $ sudo journalctl -u hulobsd.service --since="2019-07-01 00:00:00" --until="2099-08-05 00:00:00" -l --no-pager
  13. ジャーナル出力先にて使用している容量確認
    現時点での使用容量を確認します。
    $ sudo journalctl -u systemd-journald -n 2 -l --no-pager

さいごに

本記事の内容が、みなさんのHULFT構築場面でお役に立てば幸いです。

なお、私が所属するイーセクターではRPA等も取り揃えております。
「イーセクター RPA」で検索をお願いいたします。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

コメント