%20.rules%20%ED%8C%8C%EC%9D%BC%20%2Fetc%2Fudev%2Frules.d%2F%EA%B0%80%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EA%B2%83%20%EA%B0%99%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
내가 달성할 계획:
특정 SD 카드를 삽입하면 자동으로 스크립트를 실행하려고 합니다.
사실:
ㅏ. 내가 실행하려는 스크립트는 다음 스크립트가 포함된 /home/vivek/Desktop/Message.sh에 있습니다. 해당 권한은 실행 파일로 설정됩니다.
#!/bin/sh
echo "Card is now inserted"
b. /etc/udev/rules.d에서 내 규칙 파일 이름은 10-local.rules이며 다음 규칙을 포함합니다.
ENV{ID_FS_UUID}=="C097-C12A", ACTION == "add", RUN+="/bin/sh /home/vivek/Desktop/Message.sh"
씨. udevadm이 내 SD 카드의 ENV{ID_FS_UUID}를 다음과 같이 감지했습니다.
d. 아래 그림과 같이 내 /etc/udev/rules.d/에 있는 규칙 파일이 처리 중이며 "udevadm test"에 의해 발견되었습니다.
질문: SD카드를 삽입하니 잘 설치가 되었습니다. 하지만 내 스크립트는 절대 실행되지 않습니다! 도움을 주시면 감사하겠습니다.
건배
답변1
문제는 규칙 파일이 10-local.rules
실행 목록에서 너무 일찍 나타나는 것일 수 있다고 생각합니다. 시스템에서 요구하는 경우 이름을 바꾸고 95-local.rules
규칙을 다시 로드하면 더 많은 성공을 거둘 수 있습니다. sudo udevadm control --reload
udev에는 출력이 없으므로 echo
스크립트의 은 파일을 가리켜야 합니다.
udevadm info
처음에 표시된 값은 이전 규칙에 의해 설정된 속성 E:
일 수 있으므로 규칙을 가능한 한 늦게 배치해야 합니다.ENV{}