ACPI イベント発生時にスクリプトを実行できません

ACPI イベント発生時にスクリプトを実行できません

私の意図は、ヘッドフォンが PC に差し込まれたときにスクリプトを実行することです。まず、そのようなイベントが実際にキャッチされるかどうかを確認するために、実行してacpi_listenヘッドフォンを数回抜き差ししてみました。出力は次のようになります。

jack/headphone HEADPHONE plug
jack/headphone HEADPHONE unplug
jack/headphone HEADPHONE plug
jack/headphone HEADPHONE unplug

したがって、イベントは適切にキャッチされていると想定しています。次に、jack-headphoneunderという新しいイベントを作成し/etc/acpi/events、次のコンテンツを入力します。

event=jack/headphone
action=/etc/acpi/jack-headphone.sh %e

/etc/acpi/jack-headphone.sh最後に、ヘッドフォンを接続/切断するたびに実行したい実際のスクリプト( )を作成し、それを実行可能にしました。

sudo chmod +x /etc/acpi/jack-headphone.sh 

実際のスクリプトは次のようになります。

#!/bin/bash
set -e -u

if [ "$1" = "jack/headphone" -a "$2" = "HEADPHONE" ]; then
    case "$3" in
        plug)
            pacmd set-source-port 1 analog-input-headset-mic
            ;;
        unplug)
            pacmd set-source-port 1 analog-input-internal-mic
            ;;
    esac
fi

このコマンドはpacmd set-source-port 1 analog-input-headset-micヘッドフォンのマイクをデフォルトの入力として設定しますが、pacmd set-source-port 1 analog-input-internal-mic内蔵マイクでも同じことを行います。ターミナルでこのようなコマンドを実行すると、期待どおりに動作し、デフォルトの入力が適切な入力に切り替わります。しかし、ヘッドフォンを接続/取り外してスクリプトがjack-headphone.sh起動しても、デフォルトの入力はそれに応じて変更されません。どうしてそんなことが起こるのでしょうか?

何か見落としているのでしょうか、それとも間違っているのでしょうか?記録によると、私はUbuntu 18.04を使用しています

関連情報