ACPI 이벤트 발생 시 스크립트를 실행할 수 없습니다.

ACPI 이벤트 발생 시 스크립트를 실행할 수 없습니다.

내 의도는 헤드폰이 PC에 연결될 때 스크립트를 실행하는 것입니다. 우선, 실제로 이러한 이벤트가 발생하는지 확인하기 위해 acpi_listen몇 번 실행하여 헤드폰을 연결/분리해 보았습니다. 그 결과는 다음과 같습니다.

jack/headphone HEADPHONE plug
jack/headphone HEADPHONE unplug
jack/headphone HEADPHONE plug
jack/headphone HEADPHONE unplug

그래서 이벤트가 제대로 잡히지 않았나 싶습니다. 그런 다음 jack-headphoneunder 라는 새 이벤트를 만들고 /etc/acpi/events다음 콘텐츠로 채웠습니다.

event=jack/headphone
action=/etc/acpi/jack-headphone.sh %e

/etc/acpi/jack-headphone.sh마지막으로 헤드폰을 연결/분리할 때마다 실행하고 싶은 실제 스크립트( )를 만든 다음 다음을 사용하여 실행 가능하게 만들었습니다.

sudo chmod +x /etc/acpi/jack-headphone.sh 

실제 스크립트는 다음과 같습니다.

#!/bin/bash
set -e -u

if [ "$1" = "jack/headphone" -a "$2" = "HEADPHONE" ]; then
    case "$3" in
        plug)
            pacmd set-source-port 1 analog-input-headset-mic
            ;;
        unplug)
            pacmd set-source-port 1 analog-input-internal-mic
            ;;
    esac
fi

이 명령은 pacmd set-source-port 1 analog-input-headset-mic헤드폰의 마이크를 기본 입력으로 설정하는 반면, pacmd set-source-port 1 analog-input-internal-mic내부 마이크에도 동일한 작업을 수행합니다. 터미널에서 이러한 명령을 실행하면 예상대로 작동하여 기본 입력이 적절한 입력으로 전환됩니다. 그러나 헤드폰을 연결/분리하고 스크립트가 jack-headphone.sh실행되면 기본 입력이 그에 따라 수정되지 않습니다. 그게 어떻게 가능해요?

내가 여기서 뭔가를 놓치고 있거나 뭔가 잘못하고 있는 걸까요? 기록을 위해 Ubuntu 18.04를 사용하고 있습니다.

관련 정보