udev
삽입 및 제거 시 처리할 외부 USB 하드 드라이브를 설정 중입니다 (아직 설치되지 않음). 지금까지 /etc/udev/rules.d/10-local.rules
파일에 디스크 추가/제거를 기록하는 두 가지 새로운 규칙을 만들었습니다 .
SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="add", RUN+="/bin/echo 'inserted lacie' >> /home/herman/udev_file"
SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="remove", RUN+="/bin/echo 'removed lacie' >> /home/herman/udev_file"
데몬을 시작 udevd
하고 하드 드라이브를 여러 번 다시 삽입했지만 /home/herman/udev_file
전혀 생성되지 않습니다. 규칙에서 나는 명령의 키를 사용했습니다.udevadm info -a -n /dev/sdb
문제의 하드디스크입니다. 내가 여기서 뭘 잘못하고 있는 걸까? 디스크가 감지되고 있으며 mount
정상적으로 감지할 수 있습니다. 도움을 주시면 감사하겠습니다.
답변1
udev
에 로그 메시지를 출력 /var/log/messages
하지만 기본적으로 오류만 기록하며 원하는 작업을 수행하지 않지만 오류도 발생하지 않는 명령을 구성하는 경우가 있습니다. 리디렉션은 >>
쉘에 의해 처리되며 udev는 쉘을 통해 명령을 실행하지 않으므로 실제로 바이너리를 실행 /bin/echo
하고 인수를 전달합니다 'inserted lacie' >> /home/herman/udev_file
. 더 많은 정보를 기록하기 위해 udev를 변경하면(행 편집 /etc/udev/udev.conf
및 추가 udev_log="info"
) 명령이 실행되고 출력은 다음과 같습니다.'inserted lacie' >> /home/herman/udev_file
개인적으로 나는 재부팅하지 않고도 편집할 수 있도록 원하는 작업을 수행하는 짧은 쉘 스크립트를 만드는 것을 선호 udev
하지만 이를 사용 /bin/sh -c
하여 명령을 실행하여 리디렉션을 처리할 수도 있습니다.
SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="add", RUN+="/bin/sh -c '/bin/echo inserted lacie >> /home/herman/udev_file'"