Tôi muốn một zenity
hộp thoại bật lên hỏi tôi có muốn chạy bản sao lưu không, khi tôi gắn một ổ đĩa ngoài cụ thể.
Thật không may, tôi gặp rắc rối với cú pháp quy tắc UDEV. Tôi đã có quy tắc này trong /etc/udev/rules.d/test.rules
:
ACTION=="add", ATTRS{manufacturer}=="Western Digital", ATTRS{idVendor}=="1058", ATTRS{idProduct}=="1140", RUN+="/usr/local/bin/test.sh"
Nó khá cơ bản, nhưng:
- Nó được kích hoạt hàng chục lần thay vì một lần.
- Nó không thể 'nói chuyện' bằng
zenity
khitest.sh
đisudo -Hu <username> zenity --warning --text="Just some random text for now."
vì udev được giấu đi trong hệ thống và không thể tìm thấy người quản lý cửa sổ: Gtk-CẢNH BÁO **: có thể hiển thị không mở: - Nó không thân thiện với chỉnh sửa, tôi ước có một số quy tắc mà tôi có thể chỉ cần gõ LABEL cho các phân vùng nhất định mà tôi muốn kích hoạt một số tập lệnh nhất định.
Tôi muốn thấy một cải tiến chung cho quy tắc UDEV, bởi vì ngoài nhiều câu hỏi và câu trả lời về nó, ở đây và ở nơi khác, tất cả chúng có vẻ hơi khác nhau và hầu hết chúng đều kích hoạt nhiều lần.
Nhưng quan trọng nhất là, bằng cách nào, tôi có thể tạo kết nối từ đây đến một tập lệnh trong nhà có quyền truy cập vào các nội dung như phiên và màn hình của tôi để zenity
có thể hoạt động không?
DISPLAY=:0
đã lừa Câu trả lời này giải quyết vấn đề phụ 2, nhưng như câu hỏi phụ 1 dự đoán, bây giờ tôi nhận đượczenity
cửa sổ bật lên của mình khoảng 30 lần cho 1 lần cắm vào ổ đĩa. Bất cứ ý tưởng làm thế nào tôi có thể giảm điều này? Tốt nhất là tôi muốn tập lệnh được gọi chỉ với tên phân vùng làm đối số. (Ví dụ kịch bản được gọi là 3 lần với 3 phân vùng.) Tôi cũng đã cố gắngudisks
vì nó có vẻ dễ dàng như vậy, nhưng nó chỉ ngồi đó tự xưng là giám sát, nhưng không báo cáo bất cứ điều gì tôi cắm vào. Có lẽ nó không được thực hiện một cách chính xác cho Ubuntu.