Tôi muốn cắm nóng một ổ cứng ngoài, để nó gắn kết và tự động chạy Unison File Syncizer.
Tôi đã thực hiện một quy tắc udev gọi là /etc/udev/rules.d/100-sync.rules
ACTION=="add", SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="wxyz", ATTRS{idProduct}=="wxyz", RUN+="/home/ william/sync.sh"
Nó kích hoạt kịch bản này:
#!/bin/bash
mkdir/phương tiện/william/Sao lưu
gắn kết -U <my_drives_uuid> /media/william/Backup
su william -c 'thông báo-gửi "Unison" "Bắt đầu đồng bộ hóa"'
su william -c 'unison Desktop_Ext_local_connection.prf -silent > /home/william/unison_errors.log'
su william -c 'thông báo-gửi "Unison" "Đồng bộ hóa xong"'
số lượng / phương tiện/william/Sao lưu
rmdir /media/william/Sao lưu
Chạy tập lệnh từ trình bao gốc hoạt động như mong đợi, tuy nhiên khi nó được kích hoạt bởi udev, ổ đĩa không được gắn kết. (Tôi vẫn nhận được thông báo hệ thống và tạo/hủy thư mục)
Dựa trên cái này, tôi nghĩ nó không hoạt động vì udev sử dụng một không gian tên khác. Tôi đã thử tạo một tệp /etc/systemd/system/systemd-udevd.service
với nội dung
[Dịch vụ]
MountFlags=shared *(và cách khác là PrivateMounts=no)*
Tuy nhiên, điều này không thay đổi hành vi - nó vẫn không gắn kết. (vâng, tôi đã khởi động lại daemon)
Làm cách nào tôi có thể lấy ổ đĩa để gắn kết bằng udev?
Sau khi tập lệnh của tôi hoàn thành, Ubuntu sẽ tự động gắn ổ đĩa. Có công việc nào cho phép Ubuntu gắn ổ đĩa trước khi udev chạy tập lệnh của tôi không?
Tôi không thể thấy bất kỳ quy tắc udev nào mà Ubuntu sử dụng để gắn ổ đĩa, nội dung của /etc/udev/rules.d
chỉ là
100-sync.rules 70-snap.snapd.rules 70-snap.snap-store.rules
Vậy làm cách nào để Ubuntu gắn ổ đĩa sau khi tập lệnh của tôi hoàn thành và làm cách nào tôi có thể thay đổi thứ tự để chúng được gắn trước?
Tôi đang sử dụng Ubuntu 20.04.3 LTS, sự cố tương tự xảy ra trên máy tính xách tay của tôi chạy 21.04