ヘッドフォンが接続されている時期を検出するために、実際に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パッケージをインストールする他の方法がない場合は、パッケージのインストールにアクセスする必要があります。

関連情報