Tôi muốn systemd mount /mnt/testtự động gọi một chương trình (trong đời thực cryptsetupđể mở khóa thiết bị bên dưới, để thử nghiệm ở đây echo) trước khi hệ thống tệp được gắn kết và sau khi nó không được kết nối.
Với /etc/systemd/system/stickbak-encryption.service:
[Unit]
Description=stickbak encryption
Before=mnt-test.mount
StopWhenUnneeded=true
[Service]
Type=oneshot
ExecStart=/bin/echo Unlock device.
RemainAfterExit=true
ExecStop=/bin/echo Lock device.
[Install]
RequiredBy=mnt-test.mount
và /etc/fstab(một phần):
/dev/$DEVICE /mnt/test auto noauto 0 0
điều này hoạt động (sau khi daemon tải lại và kích hoạt dịch vụ) cho systemctl start mnt-test.mountvà tương ứng systemctl stop mnt-test.mount(với quyền root).
Trên mount /mnt/test, tuy nhiên, systemctl status mnt-test.mount stickbak-encryptioncác chương trình dịch vụ sau hạnh phúc inactive (dead), trong khi trước đây là active (mounted).
Làm thế nào tôi có thể (hoặc tôi có thể không?) Thiết lập một phụ thuộc được vinh danh khi /bin/mountđược gọi là tốt? Trạng thái của đơn vị gắn kết cho thấy mount /mnt/testdường như được dịch sang ExecMount=/bin/mount /dev/$DEVICE /mnt/test -t auto -o noauto, vì vậy rõ ràng systemd được thông báo.