현재 USB 장치가 연결되어있을 때 C로 작성된 프로그램을 실행하는 프로젝트를 진행 중입니다. udev 규칙으로이 작업을 수행 할 수 있습니까?Ubuntu Linux Udev 규칙 : udev 규칙을 통해 C로 작성된 프로그램을 실행할 수 있습니까?
내 장치를 연결할 때 현재 Hello World 스크립트를 실행하고 있습니다. 그러나 두 번 이상 실행합니다.
현재 경로 :
현재 규칙을 /etc/udev/rules.d/98-local.rules :
== "USB", 액션 == "추가", RUN서브 시스템 + = "/ usr/지방/빈/USB.sh"
스크립트의 경로 : /usr/local/bin/USB.sh
스크립트 :
내가 실행하는 실행 파일을 얻기 위해 이런 식으로 뭔가를 시도했습니다#!/bin/bash
echo 'Hello World!' >>"/home/<username>/Desktop/udev.out"
exit
:
#!/bin/bash
usr/games/blackjack
exit
타이핑 USR/게임/블랙 잭은 USB 장치가 삽입 될 때, 그러나 그것은 작동하지 않는 터미널에서 작동합니다. 그러나 스크립트를 실행중인 것은 동일한 파일에 결합했기 때문에 스크립트가 실행 중이며 hello world가 만들어져 있다는 것을 알고 있습니다.
SUBSYSTEMS=="usb", ACTION=='add", RUN+="/bin/su tyler -c '/usr/local/bin/USB.sh'"
그러나,이 중 하나가 작동하지 않습니다 다음과 같이
나는 또한 내 사용자 계정에서 실행 파일을 실행 노력했다.
장치 권한에 문제가 있습니까? 아니면 실행 파일을 실행할 수 없습니까?
* 참고 : udev 규칙 설명은 http://reactivated.net/writing_udev_rules.html으로 광범위하게 읽었습니다.
프로그램 실행 여부를 테스트하는 방법은 무엇입니까? –
글쎄, 나는 대화 형 프로그램이 이런 방식으로 시작되기를 바란다. 그래서이 게임의 경우에는 게임이 시작되고 게임을 할 수있을 것이다. 나는 이것에 대해 약 10 시간 이상을 가지고있다. 나는 그것을 불가능하다고 생각하기 시작했다. – Tyler
두 bash 스크립트는 모두 새긴 앞 ('#!/bin/bash') 앞에 여분의 공백이 있습니다. 이 경우 (스크립트는 기본'/ bin/sh'로 호출 될 것입니다.) 문제는 아니지만 수정해야합니다. –