更改 arch linux 中的电源按钮角色不起作用?
Changing powerbutton role in arch linux isn't working?
我正在尝试更改笔记本电脑 (ASUS Vivobook) 的电源按钮角色。因此,在 arch wiki 上,我在 /etc/systemd/logind.conf
中编辑了文件
我修改了条目 HandlePowerKey
HandlePowerKey=suspend
比我运行
systemctl kill -s HUP systemd-logind
应该重新加载新的配置,但是这样做根本没有帮助,优先级更高的目录中没有配置,所以配置应该只从 /etc/systemd/logind.conf[=16= 加载]
当检查 systemd-logind 的状态时,它显示如下所示的内容
systemd-logind.service - User Login Management
Loaded: loaded (/usr/lib/systemd/system/systemd-logind.service; static)
Active: active (running) since Thu 2021-05-20 12:14:58 IST; 34min ago
Docs: man:sd-login(3)
man:systemd-logind.service(8)
man:logind.conf(5)
man:org.freedesktop.login1(5)
Main PID: 366 (systemd-logind)
Status: "Processing requests..."
Tasks: 1 (limit: 9345)
Memory: 1.6M
CPU: 99ms
CGroup: /system.slice/systemd-logind.service
└─366 /usr/lib/systemd/systemd-logind
May 20 12:21:35 archlinux systemd-logind[366]: Config file reloaded.
May 20 12:21:50 archlinux systemd[1]: systemd-logind.service: Sent signal SIGHUP to main process 366 (systemd-logind) >
May 20 12:21:50 archlinux systemd-logind[366]: /etc/systemd/logind.conf:8: Assignment outside of section. Ignoring.
May 20 12:21:50 archlinux systemd-logind[366]: Config file reloaded.
May 20 12:22:28 archlinux systemd[1]: systemd-logind.service: Sent signal SIGHUP to main process 366 (systemd-logind) >
May 20 12:22:28 archlinux systemd-logind[366]: /etc/systemd/logind.conf:8: Assignment outside of section. Ignoring.
May 20 12:22:28 archlinux systemd-logind[366]: Config file reloaded.
May 20 12:22:37 archlinux systemd[1]: systemd-logind.service: Sent signal SIGHUP to main process 366 (systemd-logind) >
May 20 12:22:37 archlinux systemd-logind[366]: /etc/systemd/logind.conf:8: Assignment outside of section. Ignoring.
May 20 12:22:37 archlinux systemd-logind[366]: Config file reloaded.
这里显示的是节外的作业。忽略
我在网上搜索了一下,发现这可能是编码引起的。我用文件检查了我的编码,这些是结果
file -bi /etc/systemd/logind.conf
text/plain; charset=us-ascii
如果这是 ascii 则它必须是 utf-8,但它仍然无法正常工作
我还应该做些什么才能让它发挥作用
这是我的 logind.conf 文件的一部分,第 8 行有错误
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#UserStopDelaySec=10
HandlePowerKey=suspend
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend-then-hibernate
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
#HandleRebootKey=reboot
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
我当时真的不知道什么对我有用,但正如登录日志显示的那样,assignment outside of section. Ignoring
,它只是意味着文件有问题。阅读 this answer 后,我认为文件编码确实有问题。对我来说,从文件中删除注释对我有用,根据这个问题的答案,注释将编码从 utf-8 转换为其他导致问题的第一位。
因此,如果有人面临同样的问题,请删除配置文件顶部的注释,这可能会或可能不会奏效,但这值得一试。我建议在对它进行任何操作之前备份您的配置文件。
file -bi /etc/systemd/logind
text/plain; charset=utf-8
请注意我的编码从 ASCII 更改为 utf-8,您也应该是 utf-8,因为出于某种原因 systemd 仅支持 utf-8(根据上述回答)
你可以使用这个配置文件,如果它有效的话,可以做相应的修改
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#UserStopDelaySec=10
HandlePowerKey=suspend
HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend-then-hibernate
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
#HandleRebootKey=reboot
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=no
#RebootKeyIgnoreInhibited=no
#HoldoffTimeoutSec=30s
IdleAction=lock
#IdleActionSec=5Min
#RuntimeDirectorySize=10%
#RuntimeDirectoryInodes=400k
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
我正在尝试更改笔记本电脑 (ASUS Vivobook) 的电源按钮角色。因此,在 arch wiki 上,我在 /etc/systemd/logind.conf
中编辑了文件
我修改了条目 HandlePowerKey
HandlePowerKey=suspend
比我运行
systemctl kill -s HUP systemd-logind
应该重新加载新的配置,但是这样做根本没有帮助,优先级更高的目录中没有配置,所以配置应该只从 /etc/systemd/logind.conf[=16= 加载]
当检查 systemd-logind 的状态时,它显示如下所示的内容
systemd-logind.service - User Login Management
Loaded: loaded (/usr/lib/systemd/system/systemd-logind.service; static)
Active: active (running) since Thu 2021-05-20 12:14:58 IST; 34min ago
Docs: man:sd-login(3)
man:systemd-logind.service(8)
man:logind.conf(5)
man:org.freedesktop.login1(5)
Main PID: 366 (systemd-logind)
Status: "Processing requests..."
Tasks: 1 (limit: 9345)
Memory: 1.6M
CPU: 99ms
CGroup: /system.slice/systemd-logind.service
└─366 /usr/lib/systemd/systemd-logind
May 20 12:21:35 archlinux systemd-logind[366]: Config file reloaded.
May 20 12:21:50 archlinux systemd[1]: systemd-logind.service: Sent signal SIGHUP to main process 366 (systemd-logind) >
May 20 12:21:50 archlinux systemd-logind[366]: /etc/systemd/logind.conf:8: Assignment outside of section. Ignoring.
May 20 12:21:50 archlinux systemd-logind[366]: Config file reloaded.
May 20 12:22:28 archlinux systemd[1]: systemd-logind.service: Sent signal SIGHUP to main process 366 (systemd-logind) >
May 20 12:22:28 archlinux systemd-logind[366]: /etc/systemd/logind.conf:8: Assignment outside of section. Ignoring.
May 20 12:22:28 archlinux systemd-logind[366]: Config file reloaded.
May 20 12:22:37 archlinux systemd[1]: systemd-logind.service: Sent signal SIGHUP to main process 366 (systemd-logind) >
May 20 12:22:37 archlinux systemd-logind[366]: /etc/systemd/logind.conf:8: Assignment outside of section. Ignoring.
May 20 12:22:37 archlinux systemd-logind[366]: Config file reloaded.
这里显示的是节外的作业。忽略
我在网上搜索了一下,发现这可能是编码引起的。我用文件检查了我的编码,这些是结果
file -bi /etc/systemd/logind.conf
text/plain; charset=us-ascii
如果这是 ascii 则它必须是 utf-8,但它仍然无法正常工作 我还应该做些什么才能让它发挥作用
这是我的 logind.conf 文件的一部分,第 8 行有错误
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#UserStopDelaySec=10
HandlePowerKey=suspend
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend-then-hibernate
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
#HandleRebootKey=reboot
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
我当时真的不知道什么对我有用,但正如登录日志显示的那样,assignment outside of section. Ignoring
,它只是意味着文件有问题。阅读 this answer 后,我认为文件编码确实有问题。对我来说,从文件中删除注释对我有用,根据这个问题的答案,注释将编码从 utf-8 转换为其他导致问题的第一位。
因此,如果有人面临同样的问题,请删除配置文件顶部的注释,这可能会或可能不会奏效,但这值得一试。我建议在对它进行任何操作之前备份您的配置文件。
file -bi /etc/systemd/logind
text/plain; charset=utf-8
请注意我的编码从 ASCII 更改为 utf-8,您也应该是 utf-8,因为出于某种原因 systemd 仅支持 utf-8(根据上述回答)
你可以使用这个配置文件,如果它有效的话,可以做相应的修改
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#UserStopDelaySec=10
HandlePowerKey=suspend
HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend-then-hibernate
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
#HandleRebootKey=reboot
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=no
#RebootKeyIgnoreInhibited=no
#HoldoffTimeoutSec=30s
IdleAction=lock
#IdleActionSec=5Min
#RuntimeDirectorySize=10%
#RuntimeDirectoryInodes=400k
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192