Mặc dù cả hai câu trả lời đều đúng, tôi muốn thêm hai xu của mình vào cuộc thảo luận, bởi vì khi tôi tìm nó, tôi đã thiếu một số hướng dẫn và ví dụ về cách tiến hành.
- Thêm hệ thống tập tin vào
/etc/fstab
- Loại
mount -a
gắn kết tất cả các hệ thống tập tin được đề cập trong fstab
- Tìm kiếm đơn vị systemd đã được tạo bằng:
systemctl list-units | grep '/path/to/mount' | awk '{ print $1 }'
(sẽ trả về một cái gì đó kết thúc bằng .mount
)
- Thêm đơn vị gắn kết tìm thấy vào
After=
câu lệnh trong *.service
tệp
Dưới đây là một ví dụ về việc my-daemon
khởi động dịch vụ khi khởi động nhưng sau khi mạng sẵn sàng, một chia sẻ CIFS được gắn vào /mnt/cifs
và vpn-launch
dịch vụ đã bắt đầu:
/ etc / fstab
//servername/sharename /mnt/cifs cifs defaults,some,other,options 0 0
Lưu ý: Bạn có thể muốn thêm nofail
vào tùy chọn fstab của mình (ví dụ: khi sử dụng ổ đĩa ngoài). Nếu không, máy của bạn sẽ không khởi động nếu thiết bị không được kết nối. Xem bài viết fstab của 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
Đừng quên bật dịch vụ để nó được khởi động khi khởi động: systemctl enable my-daemon
Lưu ý rằng điều này cũng hoạt động cho các hệ thống tập tin khác (NFS, HDD, v.v.).
Như đã đề cập, cả hai câu trả lời đều đúng và tôi khuyến khích mọi người đọc chúng nhưng đối với tôi một vài ví dụ sẽ giúp tôi tiết kiệm thời gian.
Cập nhật (2019-06-25):
- đã thêm một lưu ý liên quan đến các tùy chọn fstab để ngăn khóa khởi động khi sử dụng ổ đĩa ngoài
- thêm
mnt-cifs.mount
vào Requires=
danh sách đó gây ra my-daemon.service
thất bại trong việc khởi động khi CIFS gắn kết không gắn thành công
systemd-remount-fs
vàoAfter
danh sách của bạn ?