Хотя оба ответа верны, я хочу добавить свои два цента к обсуждению, потому что когда я искал его, мне не хватало некоторых инструкций и примеров того, как действовать.
- Добавить файловую систему в
/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
запущена служба:
/ И т.д. / Fstab
//servername/sharename /mnt/cifs cifs defaults,some,other,options 0 0
Примечание. Возможно, вы захотите добавить nofail
к своим параметрам fstab (например, при использовании внешнего диска). В противном случае ваша машина не загрузится, если устройство не подключено. Смотрите статью в fstab ArchWiki
/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 для предотвращения блокировки загрузки при использовании внешних дисков
- добавлен
mnt-cifs.mount
в Requires=
список, который вызывает my-daemon.service
сбой при запуске, когда монтирование cifs не было успешно смонтировано
systemd-remount-fs
в свойAfter
список?