名称
logind.conf, logind.conf.d — Login manager configuration files
简介
etc/systemd/logind.conf
/etc/systemd/logind.conf.d/*.conf
/run/systemd/logind.conf.d/*.conf
/usr/lib/systemd/logind.conf.d/*.conf
描述
这些文件配置了 systemd 登录管理器 systemd-logind.service(8) 的各种参数。语法的一般描述见 systemd.syntax(7)。
配置目录和优先级
默认配置是在编译过程中设置的,所以只有在需要更改这些默认值时才需要配置。最初,/etc/systemd/中的主配置文件包含已注释的条目,显示为默认值,这些默认值作为管理员的配置指南。可以通过编辑该文件或创建drop-ins来进行本地重写,如下所述。建议使用drop-ins进行本地配置,而不是修改主配置文件(drop-ins指的是对下面的conf文件进行删除和插入,而不去影响主要的文件)。
除了 “mian “配置文件外,还可从/usr/lib/systemd/*.conf.d/、/usr/local/lib/systemd/*.conf.d/和/etc/systemd/*.conf.d/读取插入式配置片段。这些结尾为d的文件夹具有更高的优先权,并凌驾于主配置文件之上。在*.conf.d/配置子目录中的文件,无论在哪个子目录中,都会按文件名以词法顺序排序。当多个文件指定相同的选项时,对于只接受一个值的选项,最后排序的文件中的条目优先,而对于接受一个值列表的选项,条目按照文件排序进行添加。
当软件包需要用户定制配置时,它们可以在/usr/下安装drop-ins。/etc/中的文件是为本地管理员(root用户)保留的,他可以使用这个逻辑来覆盖供应商软件包所安装的配置文件。Drop-ins必须用来覆盖软件包的drop-ins,因为主配置文件的优先级较低。建议在这些子目录中的所有文件名前加一个两位数的数字和一个破折号前缀,以简化文件的排序。
要禁用供应商提供的配置文件,推荐的方法是在/etc/的配置目录中放置一个指向/dev/null的符号链接,其文件名与供应商的配置文件相同。
选项
所有的选项都是在[Login]部分配置的。
NAutoVTs=取一个正整数。配置默认分配多少个虚拟终端(VT),当切换到之前未使用的虚拟终端时,“autovt “服务会自动生成。这些服务是由模板单元autovt@.service为各自的VT TTY名称实例化的,例如,autovt@tty4.service。默认情况下,autovt@.service被链接到getty@.service。换句话说,当用户切换到未使用的虚拟终端时,登录提示会动态地启动。因此,这个参数控制了VT上有多少个登录 “gettys “可用。如果一个VT已经被其他子系统使用(例如,图形登录),这种激活将不会被尝试。请注意,在ReserveVT=中配置的VT总是受到这种激活的影响,即使它不是用NAutoVTs=指令配置的VT之一。默认为6。当设置为0时,“autovt “服务的自动生成被禁用。ReserveVT=取一个正整数。指定一个虚拟终端,该终端应无条件地保留给autovt@.server激活(见上文)。用这个选项选择的VT将被无条件地标记为繁忙,因此没有其他子系统会分配它。这个功能很有用,可以确保无论其他子系统分配了多少个VT,总有一个登录 “getty"可用。默认为6(换句话说,Alt-F6上永远有一个 “getty “可用,getty详情见:Archwiki。) 当设置为0时,VT保留被禁用。KillUserProcesses=接受一个布尔参数。配置当用户注销时是否应该杀死该用户的进程。如果为真,与会话对应的作用域单元和该作用域内的所有进程将被终止。如果为 “false”,则该作用域被 “抛弃”,参见systemd.scope(5),进程不被杀死。默认为 “true”,但可参考下面的KillOnlyUsers=和KillExcludeUsers=选项。除了会话进程外,用户进程还可以在用户管理单元user@.service下运行。根据linger的设置,这可能允许用户运行独立于其登录会话的进程。参见loginctl(1)中关于enable-linger的描述。
注意,设置
KillUserProcesses=yes会破坏screen(1)和tmux(1)等工具,除非它们被移出会话范围。见systemd-run(1)中的例子。KillOnlyUsers=,KillExcludeUsers=这些设置采用空格分隔的用户名列表,覆盖KillUserProcesses=设置。一个用户名可以被添加到KillExcludeUsers=中,以排除该用户会话作用域中的进程被杀,即使KillUserProcesses=yes被设置。如果KillExcludeUsers=没有被设置,“root “用户被默认排除在外。KillExcludeUsers=可以被设置为一个空值来覆盖这个默认值。如果一个用户没有被排除,接下来会检查KillOnlyUsers=。如果指定了这个设置,只有这些用户的会话作用域中的进程将被杀死。否则,用户将受到KillUserProcesses=yes设置的影响。IdleAction=配置系统空闲时采取的行动。从 “ignore”、“poweroff”、“reboot”、“halt”、“kexec”(见Archwiki)、“suspend”、“hibernate”、“hybrid-sleep”、“suspend-then-hibernate"和 “lock"中选择一项。默认为 “ignore”。注意,这需要用户会话正确地向系统报告空闲状态。系统将在所有会话报告他们是空闲的,没有空闲抑制锁处于活动状态,随后,
IdleActionSec=(见下文)配置的时间已过后执行该动作。IdleActionSec=配置系统空闲后采取IdleAction=(见上文)中配置的动作的延迟InhibitDelayMaxSec=指定由于 “delay “类型的抑制器锁处于活动状态而延迟系统关闭或睡眠请求的最大时间,然后该抑制器被忽略,操作仍然执行。默认值为5。UserStopDelaySec=指定在用户完全注销后为其保留用户记录和每个用户服务user@.service的时间。如果设置为0,当用户的最后一个会话结束后,每个用户的服务会立即终止。如果这个选项被配置为非零,快速注销/登录周期就会加快,因为用户的服务管理器不会被不断重启。如果设置为 “无穷大”,用户的每个用户服务在第一次登录后就不会再终止,而是继续运行直到系统关闭。默认值为10s。HandlePowerKey=,HandlePowerKeyLongPress=,HandleRebootKey=,HandleRebootKeyLongPress=,HandleSuspendKey=,HandleSuspendKeyLongPress=,HandleHibernateKey=,HandleHibernateKeyLongPress=,HandleLidSwitch=,HandleLidSwitchExternalPower=,HandleLidSwitchDocked=控制logind如何处理系统电源、重启和睡眠键,以及触发系统断电、重启或暂停等动作的盖子开关。可以是 “忽略”、“关机”、“重启”、“停止”、“kexec”、“暂停”、“休眠”、“混合睡眠”、“暂停-休眠”、“锁定”、“工厂复位 “中的一个。如果是 “忽略”,systemd-logind就不会处理这些键。如果是 “锁定”,所有正在运行的会话将被锁屏;否则,将在相应的事件中采取指定的行动。只有带有 “power-switch “udev标签的输入设备才会被观察到按键/盖板切换事件。HandlePowerKey=默认为 “关机”HandleRebootKey=默认为 “重启”HandleSuspendKey=默认为 “暂停”,HandleHibernateKey=默认为 “休眠”HandlePowerKeyLongPress=默认为 “忽略”HandleRebootKeyLongPress=默认为 “断电”HandleSuspendKeyLongPress=默认为 “休眠”HandleHibernateKeyLongPress=默认为 "忽略"HandleLidSwitch=默认为 “暂停”HandleLidSwitchExternalPower=默认情况下完全忽略(为了向后兼容)–在它被用来决定行为之前必须设置一个明确的值。HandleLidSwitchDocked=默认为 “忽略”。如果系统被插入拓展坞,或者连接了一个以上的显示器,就会发生HandleLidSwitchDocked=指定的动作;如果系统处于外部电源上,就会发生HandleLidSwitchExternalPower=指定的动作(如果有);否则就会发生HandleLidSwitch=动作。 不同的应用程序可以通过采取低级别的抑制锁(“handle-power-key”、“handle-suspend-key”、“handle-hibernate-key”、“handle-lid-switch”、“handle-reboot-key”)来禁用logind对系统电源和睡眠键及盖子开关的处理。这是图形化桌面环境最常使用的,用来接管暂停和休眠处理,并使用他们自己的配置机制。如果采取了低级别的抑制锁,当该键或开关被触发时,logind不会采取任何行动,Handle*=设置也就不重要了。
PowerKeyIgnoreInhibited=,SuspendKeyIgnoreInhibited=,HibernateKeyIgnoreInhibited=,LidSwitchIgnoreInhibited=,RebootKeyIgnoreInhibited=控制systemd-logind在电源键、重启键、休眠键和盖子开关被触发时采取的行动是否受制于高级抑制锁(“关闭”、“重启”、“休眠”、“空闲”)。低级抑制器锁(“handle-power-key”, “handle-suspend-key”, “handle-hibernate-key”, “handle-lid-switch”, “handle-reboot-key”),无论这个设置如何,都会不会被忽略。这些设置的参数是布尔值。如果是 “no”,应用程序所采取的抑制锁将不会被忽略。如果 “yes”,“关机”、“重启”、“睡眠 “和 “空闲 “抑制器锁被忽略。
PowerKeyIgnoreInhibited=,SuspendKeyIgnoreInhibited=,HibernateKeyIgnoreInhibited=和RebootKeyIgnoreInhibited=默认为 “no”。LidSwitchIgnoreInhibited=默认为 “yes”。这意味着当systemd-logind自己处理事件时(没有低级别的抑制器锁被其他应用程序占用),盖子开关默认忽略暂停抑制器,但电源和睡眠键会不忽略。HoldoffTimeoutSec=指定系统启动或恢复后,systemd暂不对lid事件做出反应的时间段。这是为了让系统正确检测任何热插拔设备,以便在连接了外部显示器或底座(拓展坞)的情况下,systemd可以忽略lid事件。如果设置为0,systemd会立即做出反应,可能在内核完全探测到所有热拔插设备之前。这很安全,只要你不关心systemd对系统关闭时被插拔的设备的处理。默认值为30秒。RuntimeDirectoryInodesMax=设置每个登录用户的$XDG_RUNTIME_DIR运行时目录的大小限制。取一个以字节为单位的大小,可选择以通常的K、G、M和T为后缀,以1024为基准(IEC)。另外,也可以指定一个以”%“为后缀的数字百分比,它设定了相对于物理RAM量的大小限制。默认值是10%。注意,这个大小只是一个安全限制。由于每个运行时目录是一个tmpfs文件系统,它只消耗所需的内存InhibitorsMax=控制允许的最大并发抑制器数量。默认为8192(8K)SessionsMax=控制要管理的并发用户会话的最大数量。默认值为8192(8K)。根据PAM堆栈配置中的pam_systemd.so模块,进一步的登录会话将被拒绝,或者允许但不被systemd-logind跟踪RemoveIPC=控制当用户完全注销时,属于该用户的System V和POSIX IPC对象是否会被删除。接受一个布尔参数。如果启用,在用户的最后一个会话结束后,用户就不能再消耗IPC资源。这包括System V信号、共享内存和消息队列,以及POSIX共享内存和消息队列。请注意,根用户和其他系统用户的IPC对象不受此设置的影响。默认值为 “yes”