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
패키지를 설치하는 다른 방법이 없으면 패키지 설치에 액세스해야 합니다.