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