AC スイッチング時にスクリプトを自動的に実行するにはどうすればよいですか

AC スイッチング時にスクリプトを自動的に実行するにはどうすればよいですか

だから、ACで作業を開始するときにこれを実行し、バッテリーで作業を開始するときにこれまたは他のより良いスクリプトを実行したいのです

私は試した

  • acpi_power_power コマンド
  • /etc/laptop-mode/battery-start にシンボリックリンクを追加する

動作していないようです

答え1

のスクリプトで必要な操作を実行できるはずです/etc/pm/power.dHOWTO.hooksのファイルから引用しますpm-utils:

pm-utils フックの書き方:

パラメーター

pm-utils フックは、少なくとも 1 つのパラメータを受け入れる実行可能ファイルです。

power.d のフックの場合、そのパラメータの潜在的な値は次のとおりです。

  • true -- システムがバッテリ電源に移行したときに、フックは適切なアクションを実行する必要があります。
  • false -- システムがバッテリ電源から移行するときに、フックは適切なアクションを実行する必要があります。

/usr/lib/pm-utils/power.dスクリプトの構造化方法についてのアイデアを得るために、既存のパワーフックのいくつかを読むこともお勧めします。

インターフェイスを使用する場合pm-utils、最初の引数を通じて AC 電源を使用しているかどうかが通知されることに注意してください。 の場合は$1trueバッテリー電源に切り替わり、 の場合は、false主電源に戻ります。

答え2

acpi を使用することで同様の目標を達成します。

/usr/bin/acpi_listen を使用して必要な acpi イベントをキャッチします。私のラップトップでは、バッテリーに切り替えたときに発生するイベントは「ac_adapter ACPI0003:00 00000080 00000000」です。そこで、新しいイベント /etc/acpi/events/switch-to-battery を作成します。内容は次のとおりです。

event=ac_adapter ACPI0003:00 00000080 00000000
action=/etc/acpi/switch-to-battery.sh

ac_adapter.sh で必要な操作を実行してください。acpi-support がインストールされている場合は、さらに多くの例が見つかります。

最後に、このコマンドを実行して、新しいイベントを有効にします。

sudo service acpid restart

答え3

それは本当に正しい質問ではありません。エラーが発生しますが、power.shを修正すると動作します。

if on_ac_power; then
  echo 0 > /home/riad/1 
  #on ac
else 
  echo 1 > /home/riad/1
  #on battery
fi

そしてそれは機能する

関連情報