Debian

我如何實際編寫檢測耳機何時插入的 acpid 事件腳本?

  • January 3, 2020

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,但事件仍然沒有觸發。

我究竟做錯了什麼?我在 Thinkpad X1 Carbon 第 4 代上使用 Debian 10(“buster”)x64。

該腳本的第一行可能需要“#!/bin/sh”,它當然必須是可執行的。

錯過或忘記後者是一個不常見的錯誤,這是固定的

$ chmod a+x /path/to/script

在標準手冊頁中可以找到對所有這些的更詳盡的描述:

$ man execve

在 Debian 系統上,這些手冊頁現在已被排除在標準集合之外,您可能需要從manpages-dev包中安裝它們:

# apt-get install manpages-dev

請注意,軟體包安裝需要root訪問權限,除非您有其他安裝軟體包的方法。

引用自:https://unix.stackexchange.com/questions/559326