Хотя оба ответа верны, я хочу добавить свои два цента к обсуждению, потому что когда я искал его, мне не хватало некоторых инструкций и примеров того, как действовать.
- Добавить файловую систему в
/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список?