両方の答えは正しいですが、議論に2セントを加えたいと思います。それを探したとき、いくつかの指示と進め方の例が欠けていたからです。
- ファイルシステムを追加します
/etc/fstab
mount -a
fstabに記載されているすべてのファイルシステムをマウントするタイプ
- で生成されたsystemdユニットを探します:(
systemctl list-units | grep '/path/to/mount' | awk '{ print $1 }'
で終わるものを返す必要があります.mount
)
- 見つかったマウントユニットをファイル内の
After=
ステートメントに追加し*.service
ます
my-daemon
起動時にサービスを開始する例を示しますが、ネットワークの準備が整った後、CIFS共有がにマウントされ/mnt/cifs
、vpn-launch
サービスが開始されます。
/ etc / fstab
//servername/sharename /mnt/cifs cifs defaults,some,other,options 0 0
注:nofail
fstabオプションに追加することもできます(外部ドライブを使用する場合など)。そうしないと、デバイスが接続されていないとマシンが起動しません。ArchWikiのfstabの記事をご覧ください
/etc/systemd/system/my-daemon.service
[Unit]
Description=Launch My Daemon
Requires=vpn-launch.service mnt-cifs.mount
After=network.target vpn-launch.service mnt-cifs.mount
[Service]
ExecStart=/path/to/my-daemon
[Install]
WantedBy=multi-user.target
起動時に開始されるようにサービスを有効にすることを忘れないでください: systemctl enable my-daemon
これは他のファイルシステム(NFS、HDDなど)でも機能することに注意してください。
すでに述べたように、両方の答えは正しいので、みんなに読んでもらうことをお勧めしますが、私にとってはいくつかの例が時間を節約してくれました。
更新(2019-06-25):
- 外部ドライブの使用時にブートロックを防ぐためのfstabオプションに関する注意を追加しました
- cifsマウントが正常にマウントされなかった場合に起動に失敗する原因となるリストに追加され
mnt-cifs.mount
ましたRequires=
my-daemon.service
systemd-remount-fs
しても機能しますAfter
か?