Хоча обидві відповіді правильні, я хочу додати свої два центи до дискусії, тому що коли я її шукав, мені не вистачало деяких інструкцій та прикладів того, як діяти.
- Додайте до файлової системи
/etc/fstab
- Введіть,
mount -a
який змонтує всі файлові системи, згадані в fstab
- Шукайте системний блок, який був сформований із:
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 (наприклад, при використанні зовнішнього накопичувача). В іншому випадку ваша машина не завантажиться, якщо пристрій не підключено. Дивіться статтю 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, жорстких дисків тощо).
Як вже було сказано, обидві відповіді правильні, і я закликаю всіх прочитати їх, але для мене пара прикладів заощадила б трохи часу.
Оновлення (2019-06-25):
- додано примітку щодо параметрів fstab, щоб запобігти блокуванню завантаження при використанні зовнішніх накопичувачів
- додано
mnt-cifs.mount
до Requires=
списку, що призводить my-daemon.service
до невдалого запуску, коли кріплення кріплення не вдалося встановити
systemd-remount-fs
до свогоAfter
списку?