내 질문
지정된 공급업체 및 제품 ID가 있는 장치에 대해 실행되는 다음 줄이 있습니다 /etc/devd.conf
.usbhidaction
/dev/uhid*
attach 100 {
match "vendor" "0x046a";
match "product" "0x0107";
action "/usr/local/bin/sudo -u my_user /usr/bin/usbhidaction -f $device-name -p /var/hid_run/usbaction.pid -c /etc/hidactions/cherry_JK0200";
};
그리고 다음 줄/etc/devfs.rules
[tant=10]
add path 'uhid*' mode 0660 group hid
하지만 재부팅하면 devd 부분이 devfs 부분보다 먼저 실행 my_user
되고 /dev/uhid*
.
- 이제 devfs가 devd보다 느린 이유는 무엇이며 이 문제를 해결하려면 어떻게 해야 합니까?
- devfs를 구성하는 다른 방법이 있습니까?
내가 왜 이러는지
새 키보드를 구입했는데 기능 키가 추가 USB 숨김 장치입니다. 이제 볼륨 낮추기 또는 음소거와 같은 기능 키 중 하나를 누를 때 작은 스크립트를 실행하고 싶습니다.
스크립트는 my_user에서 왔기 때문에 프로그램이 루트로 실행되는 것을 원하지 않습니다. 특히 계산기나 케이스 같은 것들은요.
답변1
Devd는 rc 이전에 실행되므로 devfs 이전에 실행됩니다. 이는 작성자의 신중한 선택이었습니다. 여기에서 그의 추론을 볼 수 있습니다.http://www.usenix.org/events/bsdcon03/tech/full_papers/losh/losh.pdf(7.2장)
Devd는 완전히 사용자 공간에서 실행되며 루트 권한 문제가 없습니다.
sudo를 선택하지 않는 한 그게 바로 당신이 하는 일입니다.
사용자 공간에 값을 설정하려면 devd.conf를 사용하십시오. devfs에서 플래그를 테스트하세요.