일시 중단 대신 전원 버튼을 종료하도록 설정하는 방법은 무엇입니까?


17

Dell E6530 랩톱의 Arch Linux 4.2.5-1-ARCH x86_64 에서 그놈 3.18.1 을 사용 하고 있습니다. 몇 년 전에이 OS를 설치 한 이후 랩톱의 전원 버튼으로 인해 항상 OS의 전원이 완전히 꺼졌습니다.

그러나 지난 몇 주 동안이 동작이 변경되어 전원 버튼을 누르면 랩탑이 에너지 절약 모드가됩니다. 전원 설정을 변경하지 않았습니다. pacman -Syyu그러나 항상을 사용하여 시스템을 최신 상태로 유지 하므로 업데이트로 인해이 기능이 변경된 것으로 의심됩니다.

전원 설정에는 이에 대한 옵션이 없습니다.

이 버튼을 누르면 시스템 전원이 꺼 지도록 초기 동작을 어떻게 복원 할 수 있습니까?


2
@Konrad 두 번째 단계로, 실제로 Gnome이 범인인지 확인하고 싶을 수 있습니다. 그것은 가정입니다. 껍질을 바꾸려고하면 무언가를 배울 수 있습니다. 이 문제를 디버깅하기 위해 수행 한 단계를 나열 할 수도 있습니다.
사라 와인 버거

1
무엇이 바뀌 었습니까? 뭔가 업그레이드 했습니까? 어떤 운영 체제 (버전 포함)를 실행하고 있습니까? 어떤 하드웨어에? 작동했을 때 무엇을 실행 했습니까?
Gilles 'SO- 악마 그만

정보가 누락되어 죄송합니다. 게시물을 업데이트했습니다.
Konrad Höffner

답변:


16

그 이유 는 최신 gnome-settings-daemon업데이트 때문입니다 ... 그놈 개발자전원 설정제거 했기 때문에 전원 설정에
이러한 옵션이 없습니다 ( 작업이 "너무 파괴적"으로 간주 됨 ). 결론 : 더 이상 전원 끄기 버튼 을 눌러 랩톱의 전원을 끌없습니다 .shutdown/power off


그러나 패치하고 다시 작성하려는 경우 설정 데몬 전원 플러그인에 새로운 dconf/ gsettings옵션 (예 :)을 추가 할 수 있습니다 .shutdowngnome-settings-daemon

--- 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;

패치 된 버전을 설치하면 org> gnome> settings-daemon> plugins> power> power-button-action 아래 shutdown에서 새 옵션을 사용할 수 있습니다 .dconf-editor

여기에 이미지 설명을 입력하십시오

전원 버튼을 통해 종료하려면 선택하거나 CLI를 선호하는 경우 터미널에서 실행하십시오.

gsettings set org.gnome.settings-daemon.plugins.power power-button-action shutdown

위의 작업을 수행하려면 다음의 올바른 설정이 필요합니다 /etc/systemd/logind.conf.

HandlePowerKey=poweroff
PowerKeyIgnoreInhibited=yes

전원 버튼을 누르면 경고없이 시스템이 종료됩니다.


6
매우 실망 스럽습니다. 저는 항상 Linux가 위험한 경우에도 사용자가 원하는 것을 결정하는 OS라고 생각했습니다. 그러나 이것을 발견해 주셔서 대단히 감사합니다. 적어도 나는 존재하지 않는 수정을 찾는 데 시간을 낭비하지 않습니다.
Konrad Höffner

자세한 솔루션에 대해 대단히 감사합니다. gnome-settings-daemon 3.18.2-1에도 불구하고 설치에 다른 파일이 있지만 gsd-enums.h폴더에 /usr/include/gnome-settings-daemon-3.0/gnome-settings-daemon/있으며 gsd-media-keys-manager.c전혀 존재하지 않습니다.
Konrad Höffner

Dev는 그의 결정을 취소하고 gnome-settings-daemon 3.20 에서 대화식 옵션을 복원했습니다 . (제 생각에는 아직 해당 버전으로 업데이트되지 않았습니다.)
idbrii

1
@idbrii-글쎄, 나는 너에게 나쁜 소식이있다. 나는 3.22에 있고 종료 옵션이 없다.
don_crissti

6

@don_crissti가 설명했듯이 정상적인 설정을 사용하여 확인하지 않고 종료하는 것은 실제로 불가능하기 때문에 상황이 어리 석습니다.

그러나 해결 방법이 있습니다. 시스템의 섀시 유형이 "vm"(가상 시스템)으로 설정된 경우 이전의 즉시 종료 동작이 설정을 대신합니다. 간단히 루트로 입력하십시오 :

hostnamectl set-chassis vm

한 번 재부팅하십시오. 이 설정의 부작용을 모르겠습니다.


1
나는 오랫동안이 전원 버튼 문제 따랐습니다 링크 우리의 응용 프로그램이 요구 매일 밤 비 기술 직원으로 해제 할 것을 모드에서 a 키보드없는 / 마우스없이 구성 "보기 만"을 가지고 있습니다. 전원 버튼으로 종료하는 기능이 손실되면 플러그를 뽑기 만하면됩니다. 이 솔루션은 우리에게 효과적이며 지금까지 가장 쉬운 방법입니다.
MikeV

4

우분투 18.04 또는 유사한 리눅스에서 (당신은 아마 설치할 수없는 경우)라는 파일을 만들어 ACPI 변종 /etc/acpi/events/power과를

sudo nano /etc/acpi/events/power

그리고 넣어

event=button/power
action=/sbin/poweroff

파일 내부에서 닫은 다음

sudo service acpid restart

이것은 아마도 가장 효과적인 솔루션 일 것입니다.


1
이 솔루션은 gnome-desktop이 설치된 우분투 서버 18.04 및 헤드리스 모드 (디스플레이가 연결되어있을 때 필요하지 않음)에서 잘 작동합니다. 감사 !
M-Jack

3

다른 방법으로 키보드 설정 창을 열고 명령에 사용자 정의 키보드 단축키를 할당 gnome-session-quit --power-off하면 종료 메뉴가 나타납니다. Super+ 로 트리거하도록 설정했습니다 q.


2

첫 단계로 설정 | 전원 (Gnome v3으로 가정) "일시 중지 및 전원 끄기"/ "자동 일시 중지"가 꺼짐으로 설정되어 있습니다. 기본적으로 그놈 전원 설정 기능을 비활성화하고 시스템을 그대로 사용하십시오.


0

사용자 정의 키보드 단축키가 작동 gnome-session-quit --power-off --force합니다. 전원 버튼 만 눌러 설정했습니다 .


1
정말? 나를 위해 이것은 작동하지 않습니다. 버튼은 여전히 power-button-action옵션 에 따라 작동 합니다. Ctrl+PowerOff그러나 바로 가기 키로 설정할 수 있습니다 .
Alexey

나에게도 같은 문제입니다. @Alexey
Konrad Höffner

0

데비안 스트레치에서 이것을 수행하는 다른 옵션을 찾았습니다. 패키지를 설치하고 헤더 주석 다음과 코드 앞에 다음 줄을 추가 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 패치 및 재 컴파일보다 쉽습니다.

Arch Wiki 페이지에 따르면 acpid아마도 /etc/acpi/handler.shArch에서 수정 하여 구현할 수 있습니다 .


0

나는 systemd-logind기본적으로 다른 답변에 제시된 솔루션을 정제하는 로그 출력을 모니터링하여 내 서버 에서이 문제를 해결했습니다.

이 해결 방법에는 두 개의 파일이 필요합니다. 실제 종료 이벤트를 트리거하는 스크립트

$ 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
# /unix/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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.