[shell] 특정 기기 연결 상태에 따른 처리 방법 설정하기

일반적으로 특정 기기가 연결되었을 때 원하는 작업을 수행하도록 설정하는 것은 매우 유용합니다. 이를 위해 대부분의 운영 체제에서는 해당 기능을 제공합니다. 여기서는 Linux 운영 체제에서 udev 규칙을 사용하여 특정 기기의 연결 상태에 따라 작업을 수행하는 방법에 대해 알아보겠습니다.

1. udev 규칙 설정하기

udev는 리눅스에서 장치와 관련된 이벤트를 처리하기 위한 리눅스 커널의 서브시스템입니다. 이를 사용하여 특정 기기의 연결 및 연결 해제와 같은 이벤트에 대한 규칙을 설정할 수 있습니다.

먼저 새로운 udev 규칙 파일을 생성합니다. 예를 들어, /etc/udev/rules.d/99-usb-automount.rules 경로에 usb-automount.rules 파일을 생성합니다.

2. 규칙 작성하기

아래와 같이 새로 생성한 usb-automount.rules 파일에 규칙을 작성합니다.

ACTION=="add", KERNEL=="sd?[1-9]", SUBSYSTEMS=="usb", RUN+="/bin/mount /dev/%k /mnt/usb"
ACTION=="remove", KERNEL=="sd?[1-9]", SUBSYSTEMS=="usb", RUN+="/bin/umount /dev/%k"

위의 예제에서는 USB 장치가 연결되면 /mnt/usb로 해당 장치를 자동으로 마운트하고, 연결이 해제되면 해당 장치를 자동으로 언마운트합니다.

3. 규칙 적용 및 테스트하기

변경 내용을 적용하기 위해 udev를 새로고침합니다.

sudo udevadm control --reload

이제 USB 장치를 연결하고 연결을 해제하여 설정한 동작이 수행되는지 확인합니다.

이와 같이 udev를 사용하여 특정 기기의 연결 상태에 따라 다양한 작업을 설정할 수 있습니다.