0
Udev ไม่ได้เรียกใช้สคริปต์แบบอินไลน์
ดังนั้นฉันกำลังพยายามที่จะได้รับ udev ทำบางสิ่ง (เริ่ม airmon-ng) หลังจากฉันเชื่อมต่อการ์ดเครือข่ายไร้สาย USB เฉพาะ แต่ฉันมีปัญหาในการทำให้สคริปต์แบบอินไลน์ทำงาน สามารถทำซ้ำปัญหาได้โดยใช้ตัวอย่างง่ายๆดังต่อไปนี้: สร้างสคริปต์ปฏิบัติการต่อไปนี้ /test.sh: #!/bin/sh echo hello > /tmp/test.txt สร้างไฟล์ต่อไปนี้ /etc/udev/rules.d/85-auto-monitor.rules: # This works: ACTION=="move", KERNEL=="wlx8416f91a5ed3", RUN+="/test.sh" # This does not work: # ACTION=="move", KERNEL=="wlx8416f91a5ed3", RUN+="sh -c 'echo hello > /tmp/test.txt'" ใช้คำสั่งต่อไปนี้เพื่อรีโหลด .rules ไฟล์: sudo udevadm control --reload ฉันไม่เข้าใจว่าทำไมสคริปต์ภายนอกทำงานได้ แต่ไม่ใช่สคริปต์แบบอินไลน์ สคริปต์แบบอินไลน์ทำงานได้ถ้าฉันเรียกใช้ในเทอร์มินัลของฉัน