Tôi muốn systemd mount /mnt/test
tự độ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.mount
và 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-encryption
cá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/test
dườ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.