udev
USB HDD를 자동으로 마운트하기 위해 Raspberry Pi(Debian)에 대한 간단한 규칙을 설정했습니다 . /etc/fstab
내가 가지고 있는 유일한 장치이고 거기에서 사용할 장치이기 때문에 모든 장치를 설치하는 스크립트를 실행합니다 . 이것만 필요하지만 스크립트에 전달된 일부 환경 변수가 있다는 것을 확인하고 예를 들어 몇 가지 실험을 수행하기 위해 드라이브의 레이블과 장치 노드 이름을 인쇄하도록 시도했습니다.
작동하게 되었지만 이제 삽입하면 다음과 같은 결과가 나타납니다.
pi@Gawain ~ $ Disk TOSHIBA_EXT (/dev/sda1) plugged in.Mounting...
그런 다음 다음 줄에서는 프롬프트가 표시되지 않지만 스크립트가 제대로 종료되지 않거나 다른 것이 아니라 입력을 기다리고 있으며 pwd
예를 들어 " "와 같은 것을 입력하면 작동하지만 단지 작동하지 않는다는 것입니다. 프롬프트를 표시하지 않습니다.
나는 이것이 단지 작은 화장품이기 때문에 별로 신경 쓰지 않고 아마도 드라이브를 자동으로 마운트하도록 스크립트를 남겨 둘 것이지만 왜 이렇게 작동하는지 궁금합니다.
udev 규칙:
KERNEL=="sd*1", ACTION=="add", RUN+="/home/pi/scripts/mountUSB.sh"
USB.sh 마운트:
#!/bin/bash
CONSOLE="/dev/$(who | awk '{print $2}')"
echo "Disk $ID_FS_LABEL ($DEVNAME) plugged in.Mounting..." > $CONSOLE
sudo mount -a
답변1
터미널에 직접 인쇄할 때 쉘은 이를 인식하지 못하므로 프롬프트를 다시 인쇄하는 방법도 모릅니다. 예를 들어 실행할 때 비슷한 동작이 발생합니다 (sleep 1; echo foo) &
.
udev 규칙을 인쇄하지 않는 것이 좋습니다(더 일반적인 것으로 보입니다. 오류가 발생하지 않는 한 조용히 유지하세요). 당신에게 직접 푸시하십시오. 터미널 메시지는 기생적입니다.