udev 규칙이 작동하지 않습니다

udev 규칙이 작동하지 않습니다

USB 드라이브 플러그인에 대한 udev 규칙을 작성하려고 합니다. 먼저 에 마운트 /media한 다음 에서 스크립트를 실행하고 싶습니다 /usr/local/bin/script.sh. USB를 삽입해도 이 규칙에 따라 장치가 마운트되지 않습니다. 하지만 RUN 부분을 터미널에 수동으로 입력하면 스크립트가 마운트되어 실행됩니다.

규칙 파일은 다음과 같이 말합니다.

ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh"

이것이 규칙의 RUN 섹션에서 두 명령을 실행하는 올바른 방법입니까?

답변1

2개의 명령을 실행하는 올바른 방법이 아닙니다. 나 역시 규칙에서 일치하는 부분이 마음에 들지 않지만 이 예에서는 그대로 두겠습니다. 당신은 할 수 있습니다 :

ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/sh -c '/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh'"

또는

ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/", RUN+="/usr/local/bin/script.sh"

mount하지만 당신의 경우에는 왜 명령을 스크립트 내부로 옮기지 않겠습니까 ?

관련 정보