헤드폰이 연결되어 있는 시기를 감지하기 위해 실제로 acpid 이벤트를 어떻게 스크립트합니까?

헤드폰이 연결되어 있는 시기를 감지하기 위해 실제로 acpid 이벤트를 어떻게 스크립트합니까?

acpid헤드폰이 연결되어 있는지 감지하는 데 사용합니다 . 에 따르면 acpid_listen관련 이벤트는 다음과 같습니다.

jack/headphone HEADPHONE unplug
jack/headphone HEADPHONE plug

/etc/acpi/events/headphone_jack저는 다음과 같이 파일을 만들었습니다.

event=jack/headphone.*
action=/etc/acpi/actions/headphone.sh "%e"

대신 이벤트를 사용하면 여전히 실행되지 않습니다 jack[ /]headphone. 스크립트는 /etc/acpi/actions/headphone.sh다음과 같습니다.

amixer set Master off

즉, 헤드폰을 연결하거나 분리할 때마다 볼륨이 음소거됩니다. 이 amixer명령은 터미널에서 실행됩니다. acpid을 사용하여 서비스를 다시 시작했지만 이벤트 sudo /etc/init.d/acpid reload가 여전히 실행되지 않습니다.

내가 뭘 잘못했나요? 저는 4세대 Thinkpad X1 Carbon에서 Debian 10("buster") x64를 사용하고 있습니다.

답변1

스크립트의 첫 번째 줄에는 "#!/bin/sh"가 필요할 수 있으며 물론 실행 가능해야 합니다.

후자를 놓치거나 잊어버리는 것은 다음과 같이 고칠 수 있는 일반적인 실수입니다.

$ chmod a+x /path/to/script

이 모든 것에 대한 더 자세한 설명은 표준 매뉴얼 페이지에서 찾을 수 있습니다:

$ man execve

Debian 시스템에서 이러한 매뉴얼 페이지는 이제 표준 컬렉션에서 제외되며 다음 명령을 사용하여 패키지에서 설치해야 할 수도 있습니다 manpages-dev.

# apt-get install manpages-dev

root패키지를 설치하는 다른 방법이 없으면 패키지 설치에 액세스해야 합니다.

관련 정보