私はGNOME 3.18.1 on Arch Linux 4.2.5-1-Arch x86_64をDell E6530ラップトップで使用しています。私がこのOSを何年も前にインストールしてから、私のラップトップの電源ボタンはいつも私のOSを完全にパワーダウンさせてきました。
ただし、ここ数週間でこの動作が変更されたため、電源ボタンを押すとラップトップが省電力モードになります。電源設定は変更しませんでした。私は常にpacman -Syyu
を使用してシステムを最新の状態に保つので、更新によりこの機能が変更されたと思われます。
電源設定では、このオプションはありません。
最初の動作を復元して、そのボタンを押すとシステムの電源がオフになるようにするにはどうすればよいですか?
最新のgnome-settings-daemon
の更新が原因です...
GNOME開発者によって削除された (shutdown/power off
アクションが考慮されるため、power settingsにはそのようなオプションはありません "破壊的すぎる" )。
結論:電源オフボタンを押すことで、ラップトップの電源をオフできなくなります。
ただし、gnome-settings-daemon
にパッチを適用して再構築する場合は、設定デーモンの電源プラグインに新しいdconf
/gsettings
オプション(つまり、shutdown
)を追加できます。
--- gnome-settings-daemon-3.18.2/data/gsd-enums.h 2015-11-10 09:07:12.000000000 -0500
+++ gnome-settings-daemon-3.18.2/data/gsd-enums.h 2015-11-11 18:43:43.240794875 -0500
@@ -114,7 +114,8 @@
{
GSD_POWER_BUTTON_ACTION_NOTHING,
GSD_POWER_BUTTON_ACTION_SUSPEND,
- GSD_POWER_BUTTON_ACTION_HIBERNATE
+ GSD_POWER_BUTTON_ACTION_HIBERNATE,
+ GSD_POWER_BUTTON_ACTION_SHUTDOWN
} GsdPowerButtonActionType;
typedef enum
--- gnome-settings-daemon-3.18.2/plugins/media-keys/gsd-media-keys-manager.c 2015-11-10 09:07:12.000000000 -0500
+++ gnome-settings-daemon-3.18.2/plugins/media-keys/gsd-media-keys-manager.c 2015-11-11 18:47:52.388602012 -0500
@@ -1849,6 +1849,9 @@
action_type = g_settings_get_enum (manager->priv->power_settings, "power-button-action");
switch (action_type) {
+ case GSD_POWER_BUTTON_ACTION_SHUTDOWN:
+ do_config_power_action (manager, GSD_POWER_ACTION_SHUTDOWN, in_lock_screen);
+ break;
case GSD_POWER_BUTTON_ACTION_SUSPEND:
do_config_power_action (manager, GSD_POWER_ACTION_SUSPEND, in_lock_screen);
break;
パッチが適用されたバージョンをインストールすると、新しいshutdown
オプションがdconf-editor
のorg> gnome> settings-daemon> plugins> power> power-button-actionで利用できるようになります:
電源ボタンでシャットダウンするか、CLIを使用する場合はターミナルで実行するかを選択します。
gsettings set org.gnome.settings-daemon.plugins.power power-button-action shutdown
もちろん、上記が機能するためには、/etc/systemd/logind.conf
の適切な設定も必要です。
HandlePowerKey=poweroff
PowerKeyIgnoreInhibited=yes
電源ボタンを押すと、警告なしにシステムがシャットダウンすることに注意してください。
@don_crisstiが説明したように、通常の設定を使用して確認せずにシャットダウンすることは実際には不可能であるため、状況はばかげています。
ただし、回避策があります。マシンのシャーシタイプが「vm」(仮想マシン)に設定されている場合、以前の即時シャットダウン動作がすべての設定を引き継ぎます。ルートとして入力するだけです:
hostnamectl set-chassis vm
一度再起動します。この設定の副作用は知りません。
Ubuntu 18.04またはacpiを使用する同様のLinuxバリアント(インストールできない場合)で、/etc/acpi/events/power
というファイルを
Sudo nano /etc/acpi/events/power
そして、置きます
event=button/power
action=/sbin/poweroff
ファイル内で閉じてから
Sudo service acpid restart
これはおそらく確実に機能する最も簡単なソリューションです。
別の方法として、キーボード設定ウィンドウを開き、カスタムキーボードショートカットをコマンドgnome-session-quit --power-off
に割り当てると、シャットダウンメニューが表示されます。トリガーするように設定されています Super+q。
最初のステップとして、次のことを確認する必要があります。電源(Gnome v3を想定)の「サスペンドと電源オフ」/「自動サスペンド」がオフに設定されています。基本的には、GNOME電源設定機能を無効にして、システムに引き継がせるだけです。
Debian Stretchでこれを達成する別のオプションを見つけました。パッケージacpi-support-base
をインストールし、ファイル/etc/acpi/powerbtn-acpi-support.sh
を編集して、ヘッダーコメントの後、コードの前に次の行を追加しました。
## Bypass logic to force shutdown on power button
/sbin/shutdown -h -P now "Power button pressed"
exit 0
これは少し鈍い楽器ですが、デスクトップで動作し、ラップトップで動作するはずです。また、Gnome3設定をバイパスしますが、Gnomeにパッチを適用して再コンパイルするよりも簡単です。
acpid
のArch Wikiページによると、これはおそらくArchの/etc/acpi/handler.sh
を変更することで実装できます。
カスタムキーボードショートカットが機能するので、電源ボタンのみを押してgnome-session-quit --power-off --force
に設定しました。
私のサーバーでこの問題を回避するには、systemd-logind
のログ出力を監視し、他の回答で提示されたソリューションを基本的に調整しました。
この回避策には2つのファイルが必要です。実際のシャットダウンイベントをトリガーするスクリプト
$ cat /usr/local/bin/shutdown_button_monitor.sh
#!/bin/sh
# ansible managed
# systemd-logind prints a line of the form
# Dez 21 11:12:10 box03.yeepa.de systemd-logind[748]: Power key pressed.
# on key press, but doesn't handle the button because gnome3 blocks systemd from doing so.
# See `systemd-inhibit` for that.
# first sleep a minute so we have chance to disable this scritp if it runs amok
sleep 1m
# so we workaround gnome a bit here.
journalctl -u systemd-logind --follow --lines=0 | \
while read line ; do
if echo "$line" | grep --quiet 'Power key pressed'
then
systemctl poweroff
fi
done
それを開始/再起動するサービスファイル
$ cat /etc/systemd/system/shutdown_button_monitor.service
# ansible managed
[Unit]
Description=Power off the machine if the power button is pressed
# Workaround for gnomes block of the shutdown button
# https://unix.stackexchange.com/questions/242129/gnome-3-how-to-set-power-button-to-shutdown-instead-of-suspend#242452
# Monitor these blocks yourself with `systemd-inhibit`
[Service]
User=root
ExecStart=/usr/local/bin/shutdown_button_monitor.sh
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target