电源按钮事件在哪里

如何设定电源按钮事件呢,我有个朋友手很贱。老是按我的电源按钮,如何能让按电源按钮的时候不关机呢?
debian8+i3wm

看看 /etc/systemd/logind.conf
#HandlePowerKey=poweroff 前面的注释符号去掉,再改成 HandlePowerKey=ignore

如果您运行了其它电源管理器,也相应设置

1 个赞

谢谢啊,好了,再也不怕他手贱啦 :grin:

http://www.jinbuguo.com/systemd/logind.conf.html
logind.conf 中文手册译者:金步国版权声明本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。无担保:本文译者不保证译文内容准确无误,亦不承担任何由于使用此文档所导致的损失。自由使用:任何人都可以自由的阅读/链接/打印此文档,无需任何附加条件。名誉权:任何人都可以自由的转载/引用/再创作此文档,但必须保留译者署名并注明出处。其他作品本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:金步国作品集 [ http://www.jinbuguo.com/ ]联系方式由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。Email(QQ):70171448在QQ邮箱手册索引 .
指令索引systemd-231名称logind.conf, logind.conf.d — 登陆管理器配置文件大纲/etc/systemd/logind.conf/etc/systemd/logind.conf.d/.conf/run/systemd/logind.conf.d/.conf/usr/lib/systemd/logind.conf.d/*.conf描述
上述配置文件用于控制
systemd-logind.service(8) 登陆管理器的行为。
配置目录及其优先级默认设置是在编译期间确定的,
所以仅在确实需要修改默认设置的情况下,
才需要使用配置文件。位于
/etc/systemd/ 目录中的初始配置文件,
仅包含了展示选项默认值的注释,
目的在于方便系统管理员查看和直接修改。

如果软件包想要自定义某些默认设置,
那么必须将自定义的配置文件安装到
/usr/lib/systemd/*.conf.d/ 目录中。
/etc/ 目录仅供系统管理员使用。
系统管理员可以利用下面的逻辑来覆盖默认设置:
主配置文件最先被读取,
优先级也最低。
所有 *.conf.d/ 中的配置文件
都会覆盖主配置文件中的设置。
所有 *.conf.d/ 中的配置文件(无论位于哪个目录中),
统一按照文件名的字典顺序处理。
如果在多个配置文件中设置了同一个选项,
那么仅以文件名最靠后(字典顺序)的那一个为准。
为了便于排序,
建议给所有 *.conf.d/ 中的配置文件
都加上两位十进制数字的文件名前缀。如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件,
那么最佳做法是在 /etc/ 目录中
创建一个指向 /dev/null 的同名符号链接,
即可彻底屏蔽 /usr/lib/ 目录中的同名文件。
选项下面的所有选项都位于
"[Login]" 小节:NAutoVTs=必须设为一个正整数,
    表示默认最多可以自动启动多少个虚拟终端。
    当用户切换到一个先前未曾使用的虚拟终端时,
    将根据该虚拟终端的名称自动从
    autovt@.service
    模版实例化一个
    例如 autovt@tty4.service 这样的服务单元。
    默认情况下,autovt@.service 是一个指向
    getty@.service 的软连接。
    换句话说,当用户切换到一个先前未曾使用的虚拟终端时,"login:"登录提示符是动态启动的。
    因此,此选项实际上相当于设置了允许启动多少个
    agetty 文本登录界面(与虚拟终端一一对应)。
    如果某个虚拟终端已经被其他子系统(例如图形登录界面)占用,
    那么将不会自动启动此虚拟终端。
    注意,ReserveVT= 中的虚拟终端
    总会被自动启动,
    即使这些终端并不在
    NAutoVTs= 的范围内。
    默认值是"6"。若设为"0"则表示禁止自动启动任何虚拟终端,
    也就是禁止自动从 autovt@.service
    模版实例化。ReserveVT=必须设为一个表示终端编号的正整数,
    表示无条件的为该终端从
    autovt@.service 模版实例化一个服务单元(见上文)。
    被此选项选中的虚拟终端将被无条件的标记为"忙碌"状态,
    以确保不被任何其他子系统占用。
    此选项可用于确保无论其他子系统占用了多少虚拟终端,
    在特定编号的终端上总有一个文本界面的登录
    agetty 可用。
    默认值是"6",
    也就是在 Alt-F6 上总有一个文本界面的"login:"登录提示符。
    若设为"0"则表示禁止此特性。KillUserProcesses=接受一个布尔值。控制在用户退出登录会话时,
    是否杀死该用户的进程。如果设为"yes",
    那么与此会话对应的 scope 单元中所包含的所有进程都将被杀死。
    如果设为"no",那么与此会话对应的 scope 单元将会被"遗弃",
    并且其中包含的所有进程都将被保留(任由其自生自灭)。
    默认值是 "yes" 。
    参见下面的 KillOnlyUsers= 与
    KillExcludeUsers= 选项。根据 linger(逗留) 设置的不同,用户进程除了可以运行在会话中,
    还可以运行在 user@.service 用户管理单元中。
    这样就允许用户运行独立于登录会话的进程。参见
    loginctl(1)
    的 enable-linger 命令。
    注意,设置 KillUserProcesses=yes
    将破坏
    screen(1)
    与
    tmux(1)
    之类的工具(除非它们被移出了会话 scope 单元之外)。参见
    systemd-run(1) 的例子。
    KillOnlyUsers=, KillExcludeUsers=设为一个空格分隔的用户名列表,
    以影响 KillUserProcesses= 的效果:
    若 KillOnlyUsers= 非空,
    则表示 KillUserProcesses=yes 仅对列表内的用户有效。
    若 KillExcludeUsers= 非空,
    则表示 KillUserProcesses=yes 仅对列表外的用户有效。
    KillOnlyUsers= 默认值为空,
    KillExcludeUsers= 默认值为 "root" ,
    并且 KillExcludeUsers= 的优先级比 KillOnlyUsers= 更高。
    注意,若选项值为空则表示忽略此选项(相当于不存在此选项)。IdleAction=当系统持续处于空闲状态超过 IdleActionSec= 所设置的时间后,
    应该执行何种操作:
    "ignore"(无操作),
    "poweroff"(关闭系统并切断电源),
    "reboot"(重新启动),
    "halt"(关闭系统但不切断电源),
    "kexec"(调用内核"kexec"函数),
    "suspend"(休眠到内存),
    "hibernate"(休眠到硬盘),
    "hybrid-sleep"(同时休眠到内存与硬盘),
    "lock"(锁屏) 。
    默认值是 "ignore"注意,此功能依赖于用户会话能够正确的报告空闲状态。
    执行此处设置的动作需要满足下列全部条件:
    (1)系统中不存在"idle inhibitor"锁(禁止进入空闲状态的锁)
    (2)所有会话都报告说它们正处于空闲状态,并且持续处于空闲状态超过了下文
    IdleActionSec= 所设置的时间。
    IdleActionSec=当系统持续处于空闲状态超过此处设置的时长之后
    将会自动执行 IdleAction= 设定的动作。
    可以使用下面的时间单位后缀:"ms", "s", "min", "h", "d" ,若仅设为一个正整数,那么单位是秒。InhibitDelayMaxSec=当系统中存在"delay inhibitor"延迟锁时,关闭/休眠系统的请求将被临时延迟一段时间。
    此选项可用于设置上述延迟的最大时长。
    若超过这个时长之后,延迟锁依然未被释放,那么将执行关闭/休眠系统的动作。
    可以使用下面的时间单位后缀:"ms", "s", "min", "h", "d" ,若仅设为一个正整数,那么单位是秒。
    默认值是5秒。HandlePowerKey=, HandleSuspendKey=, HandleHibernateKey=, HandleLidSwitch=, HandleLidSwitchDocked=
    当按下硬件按钮(关机、休眠到内存、休眠到硬盘、合上显示屏)时,
    应该执行何种操作:
    "ignore"(无操作),
    "poweroff"(关闭系统并切断电源),
    "reboot"(重新启动),
    "halt"(关闭系统但不切断电源),
    "kexec"(调用内核"kexec"函数),
    "suspend"(休眠到内存),
    "hibernate"(休眠到硬盘),
    "hybrid-sleep"(同时休眠到内存与硬盘),
    "lock"(锁屏) 。



    注意,
    只监视带有 "power-switch" 标签的
    输入设备的 key(按下按钮)/lid(合上显示屏) 事件。
    如果主机插入了一个扩展坞(docking station)
    或者连接了多个显示器,
    那么"合上显示屏"将执行
    HandleLidSwitchDocked= 动作,
    否则将执行 HandleLidSwitch= 动作。
    下面是各选项的默认值:
    HandlePowerKey=poweroff 、
    HandleSuspendKey=suspend 、
    HandleLidSwitch=suspend 、
    HandleLidSwitchDocked=ignore 、
    HandleHibernateKey=hibernate
    PowerKeyIgnoreInhibited=, SuspendKeyIgnoreInhibited=, HibernateKeyIgnoreInhibited=, LidSwitchIgnoreInhibited=
    设置硬件按钮(关机、休眠到内存、休眠到硬盘、合上显示屏)
    所触发的操作(见上文)是否应该忽略 inhibitor 锁的存在。
    "no" 表示遵守应用所持有的 inhibitor 锁,
    仅当所有的锁都失效以后才执行所触发的操作。
    "yes" 表示无视 inhibitor 锁的存在,
    无条件的立即执行所触发的操作。


    下面是各选项的默认值:
    PowerKeyIgnoreInhibited=no 、
    SuspendKeyIgnoreInhibited=no 、
    HibernateKeyIgnoreInhibited=no 、
    LidSwitchIgnoreInhibited=yes 。
    HoldoffTimeoutSec=
    当开机/唤醒时间尚未超出此处设置的时间长度时,
    systemd 将延迟响应合上显示屏(lid)硬件事件。
    为了能够正确检测可热插拔的外接显示器与扩展坞,
    在刚开机之后的一段时间内忽略lid事件是非常有必要的。
    若设为零,systemd 将会立即响应lid事件,
    但这有可能在内核完成初始化所有热插拔设备之前。
    只要你不在乎让 systemd 去管理在系统关闭时被插入或拔出的设备,
    那么就可以设为零。
    默认值是30秒。RuntimeDirectorySize=
    为每个已登录用户设置运行时目录($XDG_RUNTIME_DIR)的最大尺寸。
    若设为绝对大小,
    则可以使用基于1024的字节后缀:K, M, G, T 。
    若设为相对大小,
    则可以设为一个以物理内存大小为基准的百分数(以 "%" 为后缀)。
    默认值是 10% 。
    注意,这里设置的值仅用于限制运行时目录尺寸的上限,
    因为运行时目录位于内存中(tmpfs),
    所以实际所占用的内存大小是随着目录内容的变化而变化的。InhibitorsMax=控制最多允许同时存在多少个 inhibitor 锁。
    默认值是 8192SessionsMax=控制最多允许同时管理多少个用户会话。默认值是 8192 。
    根据PAM栈中 pam_systemd.so 模块的不同配置,
    超出数量限制的登录会话可能会被直接拒绝、也可能会被允许登录但不被
    systemd-logind 追踪。UserTasksMax=限制每个用户可同时运行的最大操作系统任务数。
    这实际上是设置了每个用户的 slice 单元的 TasksMax= 的值。详见
    systemd.resource-control(5)
    手册。默认值是 33% ,对于默认设置的内核来说,在主机上等于 10813 ,但是在容器中的值可能会更小。
    RemoveIPC=当用户完全退出登录时(也就是退出最后一个登录会话时),
    是否销毁所有属于该用户的 SysV 与 POSIX IPC 对象。
    这些IPC对象包括:SysV 信号/共享内存/消息队列、POSIX 共享内存/消息队列。
    默认值 "yes" 表示销毁,这样可以确保当用户完全退出登录之后,不会再占用任何IPC资源。
    注意,无论如何设置此选项,root 用户的IPC对象永远不会被销毁。参见
    systemd(1),
    systemd-logind.service(8),
    loginctl(1),
    systemd-system.conf(5)