Debian
我如何實際編寫檢測耳機何時插入的 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
,但事件仍然沒有觸發。我究竟做錯了什麼?我在 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
訪問權限,除非您有其他安裝軟體包的方法。