Udev ไม่ได้เรียกใช้สคริปต์แบบอินไลน์


1

ดังนั้นฉันกำลังพยายามที่จะได้รับ 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 

ฉันไม่เข้าใจว่าทำไมสคริปต์ภายนอกทำงานได้ แต่ไม่ใช่สคริปต์แบบอินไลน์ สคริปต์แบบอินไลน์ทำงานได้ถ้าฉันเรียกใช้ในเทอร์มินัลของฉัน


คัดลอกมาจาก stackoverflow.com/questions/43116996/...
Andreas

ใช้เส้นทางที่แน่นอน
Alex P.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.