
電源ボタンを押したときに、スクリプトを実行したいと思います。このシナリオでは、file.sh とします。したがって、電源ボタンを押したときに、file.sh だけを実行したいと思います。
私が見つけた解決策のほとんどは を編集するものでした/etc/acpi/powerbtn.sh
。しかし、そのファイルは私のシステムには存在しません。(Ubuntu 19.04 を実行しています) 作成して標準コンテンツで設定しようとしましたが、うまくいきませんでした。また、 を使用してキーの押下をリッスンしようとしましたacpi_listen
が、キーを押しても何も起こらなかったため、やり方が間違っているのか、それとも他の原因があるのかわかりません。 を使用しようとしましたがxev
、キー イベントは取得されましたが、電源ボタンを押しても何も登録されませんでした。
これを実現する方法、または私が何を間違っているのか知っている人はいますか?
追記:コマンドラインで実行できるソリューション、できればサードパーティのソフトウェアを使わないソリューションを希望します。よろしくお願いします。
同様の質問ですが、解決策はありません:
https://askubuntu.com/questions/473693/電源ボタンが押されたときにスクリプトを実行する
基本的に、ここで行ったことと同等の Linux を探しています:
https://stackoverflow.com/questions/12434863/windows-shutdown でバッチ スクリプトを実行する
編集: これは syslog から取得したものです:
Feb 9 13:01:01 joe-Aspire-E5-576G gnome-session-binary[1624]: Entering running state
そして、これはイベント内の私のファイルです:
event=button/power action=/home/ragnvaldr/Desktop/test/sc.sh
`
答え1
あなたの質問への回答は例のセクションですman acpid
。お客様のニーズに合わせて対応いたします。
- 次のような内容の
root
ファイル名のファイルを作成します。/etc/acpi/events/power
event=button/power
action=/usr/bin/logger "ACPI_POWER_BTTN_TEST: %e"
次に を実行します
service acpid restart
。syslog
ファイルをこのように追跡する/usr/bin/tail -f /var/log/syslog
電源ボタンを押すと、テスト メッセージが表示されます
syslog
。action=
ファイル内の行を適切に変更してpower
、カスタム スクリプトを指すようにします。
トラブルシューティング:
を再起動した後
acpid
、コマンドacpid
を使用して が実際に実行されているかどうかを確認しますpidof acpid
。スクリプトは期待通りに動作しますか?スクリプト内のコマンドにはフルパス名を使用してください。ないの任意の値を想定します
PATH
。上記の例では、コマンドを使用して
/usr/bin/logger
、簡単に何かをどこかに記録します ( )。あるいは、テスト目的で、/var/log/syslog
以下のファイルに何かを書き込むこともできます。/tmp
一部のウィンドウ マネージャーは電源ボタンもキャプチャする可能性があると報告されています (@nathan より)。 に という
/etc/systemd/logind.conf
行を追加して、電源ボタンを無視するHandlePowerKey=ignore
ようにすると役立つ場合があります。systemd-logind.service
答え2
基本的に、ここで行ったことと同等の Linux を探しています:https://stackoverflow.com/questions/12434863/windows-shutdown でバッチ スクリプトを実行する
もしこれをやりたいのであれば、システムがシャットダウン(または休止状態またはスリープ状態)したときにスクリプトを実行することができます。systemd
インフラストラクチャー。