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


9

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がすべてのディスクをマウントする前に開始されるため、ライセンスサーバーを開始できません。

回答:


9

以下を追加する必要があります

[Unit]
RequiresMountsFor=<path required>

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


1
ネクロに申し訳ありませんが、これがNFSマウントであり、nfsがまだ開始されていない場合はどうなりますか?編集:自分の質問に答えて、マンページRequiresMountsForを確認したところ、「noauto」なしで/ etc / fstabで適切に定義されている限り、NFSマウントでも動作するように見えます
Normadize
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.