systemd で autofs が起動した後にサービスを開始するように設定する方法

systemd で autofs が起動した後にサービスを開始するように設定する方法

systemd を搭載した RHEL7 マシンにライセンス サーバーをセットアップする必要があります。ライセンス サーバーは起動時に起動し、ネットワーク上の共有ディスクからライセンス ファイルをロードする必要があります。そのため、ネットワークが起動し、autofs が NFS ディスクのマウントを完了するまで待つ必要があります。次のサービス ファイルがあります。

[Unit]
Description=Flexnet license server
Wants=network.target network-online.target autofs.service
After=network.target network-online.target autofs.service

[Service]
Type=forking
User=licenseuser
Group=devusers
ExecStart=/soft/flexera/glnxa64/lmgrd -c /soft/licenses/license.dat -L /home/licenseuser/license.log

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

[Install]
WantedBy=multi-user.target

サービスは autofs が起動した後、autofs がすべてのディスクをマウントする前に起動されるため、ライセンス サーバーを起動できません。

答え1

以下の内容を追加してください

[Unit]
RequiresMountsFor=<path required>

これにより、サービスを開始する前にパスにアクセスできるようになり、まだマウントされていない場合はマウントされます (noauto が指定されていない場合)。私のシステムは非常に最先端のため、このオプションがシステムでサポートされているかどうかは、man ページ (man systemd.unit) で確認してください。

関連情報