แม้ว่าคำตอบทั้งสองจะถูกต้อง แต่ฉันต้องการเพิ่มสองเซ็นต์ของฉันไปยังการอภิปรายเพราะเมื่อฉันได้มองหามันฉันก็หายไปบางคำแนะนำและตัวอย่างของวิธีการดำเนินการต่อไป
- เพิ่มระบบไฟล์ไปที่
/etc/fstab
- พิมพ์
mount -a
ว่าเมาท์ระบบไฟล์ทั้งหมดที่กล่าวถึงใน fstab
- ค้นหายูนิต systemd ที่สร้างขึ้นด้วย:
systemctl list-units | grep '/path/to/mount' | awk '{ print $1 }'
(ควรส่งคืนบางสิ่งที่ลงท้ายด้วย.mount
)
- เพิ่ม mount-unit ที่พบลงใน
After=
คำสั่งใน*.service
ไฟล์
นี่คือตัวอย่างของการเริ่มต้นmy-daemon
บริการเมื่อบู๊ต แต่หลังจากที่เครือข่ายพร้อมใช้งาน CIFS จะถูกติดตั้งที่/mnt/cifs
และvpn-launch
บริการเริ่มขึ้นแล้ว:
/ etc / 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
รายการของคุณ?