- systemd.index 中文手册
- systemd.directives 中文手册
- binfmt.d 中文手册
- bootctl 中文手册
- bootup 中文手册
- busctl 中文手册
- coredump.conf 中文手册
- coredumpctl 中文手册
- crypttab 中文手册
- daemon 中文手册
- dnssec-trust-anchors.d 中文手册
- environment.d 中文手册
- file-hierarchy 中文手册
- halt 中文手册
- hostname 中文手册
- hostnamectl 中文手册
- hwdb 中文手册
- journal-remote.conf 中文手册
- journal-upload.conf 中文手册
- journalctl 中文手册
- journald.conf 中文手册
- kernel-command-line 中文手册
- kernel-install 中文手册
- loader.conf 中文手册
- locale.conf 中文手册
- localectl 中文手册
- localtime 中文手册
- loginctl 中文手册
- logind.conf 中文手册
- machine-id 中文手册
- machine-info 中文手册
- machinectl 中文手册
- modules-load.d 中文手册
- networkctl 中文手册
- networkd.conf 中文手册
- nss-myhostname 中文手册
- nss-mymachines 中文手册
- nss-resolve 中文手册
- nss-systemd 中文手册
- os-release 中文手册
- pam_systemd 中文手册
- portablectl 中文手册
- resolvectl 中文手册
- resolved.conf 中文手册
- shutdown 中文手册
- sysctl.d 中文手册
- systemctl 中文手册
- systemd 中文手册
- systemd-analyze 中文手册
- systemd-ask-password 中文手册
- systemd-ask-password-console.service 中文手册
- systemd-backlight@.service 中文手册
- systemd-binfmt.service 中文手册
- systemd-bless-boot-generator 中文手册
- systemd-bless-boot.service 中文手册
- systemd-boot 中文手册
- systemd-boot-check-no-failures.service 中文手册
- systemd-cat 中文手册
- systemd-cgls 中文手册
- systemd-cgtop 中文手册
- systemd-coredump 中文手册
- systemd-cryptsetup-generator 中文手册
- systemd-cryptsetup@.service 中文手册
- systemd-debug-generator 中文手册
- systemd-delta 中文手册
- systemd-detect-virt 中文手册
- systemd-environment-d-generator 中文手册
- systemd-escape 中文手册
- systemd-firstboot 中文手册
- systemd-fsck@.service 中文手册
- systemd-fstab-generator 中文手册
- systemd-getty-generator 中文手册
- systemd-gpt-auto-generator 中文手册
- systemd-halt.service 中文手册
- systemd-hibernate-resume-generator 中文手册
- systemd-hibernate-resume@.service 中文手册
- systemd-hostnamed.service 中文手册
- systemd-hwdb 中文手册
- systemd-id128 中文手册
- systemd-importd.service 中文手册
- systemd-inhibit 中文手册
- systemd-initctl.service 中文手册
- systemd-journal-gatewayd.service 中文手册
- systemd-journal-remote.service 中文手册
- systemd-journal-upload.service 中文手册
- systemd-journald.service 中文手册
- systemd-localed.service 中文手册
- systemd-logind.service 中文手册
- systemd-machine-id-commit.service 中文手册
- systemd-machine-id-setup 中文手册
- systemd-machined.service 中文手册
- systemd-makefs@.service 中文手册
- systemd-modules-load.service 中文手册
- systemd-mount 中文手册
- systemd-networkd-wait-online.service 中文手册
- systemd-networkd.service 中文手册
- systemd-notify 中文手册
- systemd-nspawn 中文手册
- systemd-path 中文手册
- systemd-portabled.service 中文手册
- systemd-quotacheck.service 中文手册
- systemd-random-seed.service 中文手册
- systemd-rc-local-generator 中文手册
- systemd-remount-fs.service 中文手册
- systemd-resolved.service 中文手册
- systemd-rfkill.service 中文手册
- systemd-run 中文手册
- systemd-run-generator 中文手册
- systemd-sleep.conf 中文手册
- systemd-socket-activate 中文手册
- systemd-socket-proxyd 中文手册
- systemd-suspend.service 中文手册
- systemd-sysctl.service 中文手册
- systemd-system-update-generator 中文手册
- systemd-system.conf 中文手册
- systemd-sysusers 中文手册
- systemd-sysv-generator 中文手册
- systemd-time-wait-sync.service 中文手册
- systemd-timedated.service 中文手册
- systemd-timesyncd.service 中文手册
- systemd-tmpfiles 中文手册
- systemd-tty-ask-password-agent 中文手册
- systemd-udevd.service 中文手册
- systemd-update-done.service 中文手册
- systemd-update-utmp.service 中文手册
- systemd-user-sessions.service 中文手册
- systemd-vconsole-setup.service 中文手册
- systemd-veritysetup-generator 中文手册
- systemd-veritysetup@.service 中文手册
- systemd-volatile-root.service 中文手册
- systemd.automount 中文手册
- systemd.device 中文手册
- systemd.dnssd 中文手册
- systemd.environment-generator 中文手册
- systemd.exec 中文手册
- systemd.generator 中文手册
- systemd.journal-fields 中文手册
- systemd.kill 中文手册
- systemd.link 中文手册
- systemd.mount 中文手册
- systemd.netdev 中文手册
- systemd.network 中文手册
- systemd.nspawn 中文手册
- systemd.offline-updates 中文手册
- systemd.path 中文手册
- systemd.preset 中文手册
- systemd.resource-control 中文手册
- systemd.scope 中文手册
- systemd.service 中文手册
- systemd.slice 中文手册
- systemd.socket 中文手册
- systemd.special 中文手册
- systemd.swap 中文手册
- systemd.syntax 中文手册
- systemd.target 中文手册
- systemd.time 中文手册
- systemd.timer 中文手册
- systemd.unit 中文手册
- sysusers.d 中文手册
- timedatectl 中文手册
- timesyncd.conf 中文手册
- tmpfiles.d 中文手册
- udev 中文手册
- udev.conf 中文手册
- udevadm 中文手册
- user@.service 中文手册
- vconsole.conf 中文手册
systemd-system.conf 中文手册
名称
systemd-system.conf, system.conf.d, systemd-user.conf, user.conf.d — systemd 配置文件
大纲
/etc/systemd/system.conf
,/etc/systemd/system.conf.d/*.conf
,/run/systemd/system.conf.d/*.conf
,/usr/lib/systemd/system.conf.d/*.conf
/etc/systemd/user.conf
,/etc/systemd/user.conf.d/*.conf
,/run/systemd/user.conf.d/*.conf
,/usr/lib/systemd/user.conf.d/*.conf
描述
当作为系统实例运行时,systemd 将会按照 system.conf
配置文件以及 system.conf.d
配置目录中的指令工作;当作为用户实例运行时,systemd 将会按照 user.conf
配置文件以及 user.conf.d
配置目录中的指令工作。这些配置文件包含了控制 systemd 行为的设置。参见systemd.syntax(5)以了解通用配置语法。
配置目录及其优先级
默认设置是在编译期间确定的,所以仅在确实需要修改默认设置的情况下,才需要使用配置文件。位于/etc/systemd/
目录中的初始配置文件,仅包含了展示选项默认值的注释,目的在于方便系统管理员查看和直接修改。
如果软件包想要自定义某些默认设置,那么必须将自定义的配置文件安装到/usr/lib/systemd/*.conf.d/
目录中。/etc/
目录仅供系统管理员使用。系统管理员可以利用下面的逻辑来覆盖默认设置:主配置文件最先被读取,优先级也最低。所有 *.conf.d/
中的配置文件都会覆盖主配置文件中的设置。所有 *.conf.d/
中的配置文件(无论位于哪个目录中),统一按照文件名的字典顺序处理。当多个配置文件都设置了同一个选项的时候:(1)如果该选项仅接受一个单一值,那么仅以文件名最靠后(字典顺序)的那一个为准;(2)如果该选项可接受一个值列表,那么将会按照文件名的字典顺序将所有值列表拼接起来。为了便于排序,建议给所有 *.conf.d/
中的配置文件都加上两位十进制数字的文件名前缀。
如果系统管理员想要屏蔽 /usr/lib/
目录中的某个配置文件,那么最佳做法是在 /etc/
目录中创建一个指向 /dev/null
的同名符号链接,即可彻底屏蔽 /usr/lib/
目录中的同名文件。
选项
所有选项都位于"[Manager]
" 小节中
LogLevel=
,LogTarget=
,LogColor=
,LogLocation=
,DumpCore=yes
,CrashChangeVT=no
,CrashShell=no
,CrashReboot=no
,ShowStatus=yes
,DefaultStandardOutput=journal
,DefaultStandardError=inherit
设置一些 systemd 命令行选项的默认值。配置文件中的设置既可以被命令行选项覆盖,也可以被内核引导选项覆盖。详见 systemd(1) 手册。
CtrlAltDelBurstAction=
当用户在2秒内连续超过7次按 Ctrl-Alt-Delete 组合键时,应该执行什么操作。可以设为下列值之一: "
reboot-force
", "poweroff-force
", "reboot-immediate
", "poweroff-immediate
", "none
"(什么也不做) 。默认值 "reboot-force
" 表示强制重启。CPUAffinity=
设置 systemd 进程的CPU关联性、及其所有子进程的默认CPU关联性。值是一个逗号分隔的CPU编号与CPU范围的列表。所谓"CPU范围"是指用CPU编号表示的一段范围内的CPU,格式是"编号下限-编号上限"。每个单元可以通过
CPUAffinity=
选项(systemd.exec(5))覆盖此处的默认值。RuntimeWatchdogSec=
,ShutdownWatchdogSec=
分别配置硬件看门狗的运行时超时阈值与重启超时阈值。若仅设置一个整数而没有单位,那么单位是秒。同时也可以在整数后面加上时间单位后缀: "
ms
"(毫秒), "s
"(秒), "min
"(分钟), "h
"(小时),"d
"(天), "w
"(周)。如果将RuntimeWatchdogSec=
设为非零值,那么 systemd 会尽力以该值的一半时长为间隔不断喂狗,当看门狗硬件的饥饿时间超过该选项设置的阈值时,看门狗硬件将会重启系统。默认使用/dev/watchdog
作为看门狗硬件,但也可以被内核引导参数systemd.watchdog-device=
或单元选项WatchdogDevice=
修改。某些看门狗硬件不支持随意设置超时值,在这种情况下,将会自动使用最接近的有效阈值。ShutdownWatchdogSec=
可用于设置重启超时阈值。其含义是,当 systemd 在正常重启过程中遭遇故障,无法在ShutdownWatchdogSec=
规定的时间内完成重启时,将由看门狗硬件强制重启整个机器。注意,ShutdownWatchdogSec=
仅作用于关机的第二阶段,也就是在所有常规服务都已终止、systemd(PID=1)已被systemd-shutdown
替代之后(详见 bootup(7) 手册)。在关机的第一阶段,systemd(PID=1)仍在运行,仍以RuntimeWatchdogSec=
为准。可以在shutdown.target
的 "[Unit]
" 小节中使用JobTimeoutSec=
与JobTimeoutAction=
配置关机第一阶段的超时值。RuntimeWatchdogSec=
的默认值是"0"(关闭看门狗); 而ShutdownWatchdogSec=
的默认值是 10min (10分钟)。这些设置仅在确实存在看门狗硬件(它们通常都集成在服务器主板上)时有意义,否则没有任何作用。WatchdogDevice=
设置硬件看门狗设备文件。默认值是
/dev/watchdog
。对于没有硬件看门狗的机器,此选项没有任何效果。CapabilityBoundingSet=
设置 systemd(PID=1) 及其子进程的 capabilities 集合(bounding, effective, permitted, inheritable)中应该包含哪些 capabilities(7) 。选项值是一个 空格分隔的、可被 cap_from_name(3) 读取的 capability 名称列表。列表中的 capabilities 将会被包含在 capability 集合中,而所有其他不在列表中的 capabilities 则会被剔除。如果列表以"~"符号开头,那么表示取反,也就是所有列表之外的 capabilities 将会被包含在 capability 集合中。也可以在每个单元文件中,使用这个选项针对每个单元文件单独设置专用于该单元的 capability 集合。但是,那些已经被 systemd(PID=1) 排除的 capabilities 是永久性的排除,也就是无法再被加入到单元的 capability 集合中去。
NoNewPrivileges=
接受一个布尔值,设为 yes 表示 systemd(PID=1)进程与其子进程都不能通过 execve(2) 调用获得任何新权限(例如通过 setuid/setgid 位或者文件系统 capability)。默认值为 no 。因为通用发行版一般都需要带有 setuid 或 setgid 位的可执行文件,所以,当启用此选项时,将会无法正常工作。无法针对单个单元禁用此选项。详见 No New Privileges Flag 文档。
SystemCallArchitectures=
设置可使用哪些体系结构的系统调用,选项值是一个 空格分隔的体系结构标识符列表。可以使用的标识符有: "
x86
", "x86-64
", "x32
", "arm
", "native
"(编译 systemd 时的目标架构)。该选项的默认值为空,表示不作任何限制。该选项可用于在全系统范围内 强制仅允许执行特定体系结构的二进制程序。比如 禁止在 x86-64 机器上执行32位的 x86 二进制程序。当某个二进制程序企图执行列表范围之外的系统调用时,它将会立即被 SIGSYS 信号杀死。该选项在全系统范围有效,相当于单元文件中的SystemCallArchitectures=
选项(参见 systemd.exec(5)) 的全局版本。TimerSlackNSec=
设置 systemd(PID=1) 的定时器粒度。若仅设置一个整数而没有单位,那么单位是纳秒。也可以在整数后面加上时间单位后缀: "ns"(纳秒), "us"(微秒), "ms"(毫秒), "s"(秒), "min"(分钟), "h"(小时), "d"(天), "w"(周) 。该值会被所有子进程继承,但可以被单元文件中的
TimerSlackNSec=
选项(参见 systemd.exec(5)) 针对特定单元改写。定时器的粒度大小控制着进程被操作系统定时器唤醒的时间精度,详见 prctl(2) 手册。DefaultTimerAccuracySec=
设置定时器单元的默认精度,也就是 timer 单元文件中
AccuracySec=
选项的默认值 (参见 systemd.timer(5))。默认值是 1min(1分钟)。在 timer 单元文件中明确设置的AccuracySec=
值会覆盖此处的设置。若仅设置一个整数而没有单位,那么单位是秒。也可以在整数后面加上时间单位后缀:"ms"(毫秒), "s"(秒), "min"(分钟), "h"(小时), "d"(天), "w"(周) 。注意,实际能够达到的精度受TimerSlackNSec=
选项的制约(可以理解为最小时间片)。DefaultTimeoutStartSec=
,DefaultTimeoutStopSec=
,DefaultRestartSec=
设置启动/停止一个单元所允许的最大时长,以及在重启一个单元时,停止与启动之间的间隔时长。若仅设置一个整数而没有单位,那么单位是秒。也可以在整数后面加上时间单位后缀: "ms"(毫秒), "s"(秒), "min"(分钟), "h"(小时), "d"(天), "w"(周) 。
DefaultTimeoutStartSec=
与DefaultTimeoutStopSec=
的默认值都是 90s ,而DefaultRestartSec=
的默认值是 100ms 。对于Type=oneshot
类型的 service 单元,这些选项没有意义(相当于全部被禁用)。对于其他类型的 service 单元,可以在单元文件中设置TimeoutStartSec=
,TimeoutStopSec=
,RestartSec=
以覆盖此处设置的默认值 (参见 systemd.service(5))。对于其他非 service 类型的单元,DefaultTimeoutStartSec=
是TimeoutSec=
的默认值。DefaultStartLimitIntervalSec=
,DefaultStartLimitBurst=
设置默认的单元启动频率限制,相当于设置单元文件中
StartLimitIntervalSec=
,StartLimitBurst=
的默认值 (参见systemd.service(5))。默认值如下:DefaultStartLimitIntervalSec=10s
,DefaultStartLimitBurst=5
DefaultEnvironment=
设置需要传递给所有子进程的环境变量,值是一个空格分隔的 VAR=VALUE 列表。参见 environ(7) 手册。
例如:
DefaultEnvironment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"
设置了 "
VAR1
", "VAR2
", "VAR3
" 三个变量,其值分别是 "word1 word2", "word3", "word 5 6" 。DefaultCPUAccounting=
,DefaultBlockIOAccounting=
,DefaultMemoryAccounting=
,DefaultTasksAccounting=
,DefaultIOAccounting=
,DefaultIPAccounting=
设置每个单元默认的资源统计开关。相当于分别设置单元文件中
CPUAccounting=
,BlockIOAccounting=
,MemoryAccounting=
,TasksAccounting=
,IOAccounting=
,IPAccounting=
的默认值(参见 systemd.resource-control(5))。DefaultTasksAccounting=
,DefaultMemoryAccounting=
的默认值是"yes"。如果CPU统计并不依赖于 cgroup 的"cpu"控制器(Linux 4.15+),那么DefaultCPUAccounting=
的默认值也是"yes",否则默认值是"no"。其他三个选项的默认值都是"no"。DefaultTasksMax=
设置每个单元默认的最大任务数量,相当于设置每个单元的
TasksMax=
默认值(参见 systemd.resource-control(5))。作用于所有支持资源限制的单元类型(但 slice 单元除外)。默认值是 15% ,对于默认设置的内核来说,在主机上等于 4915 ,但在容器中的值可能会更小。DefaultLimitCPU=
,DefaultLimitFSIZE=
,DefaultLimitDATA=
,DefaultLimitSTACK=
,DefaultLimitCORE=
,DefaultLimitRSS=
,DefaultLimitNOFILE=
,DefaultLimitAS=
,DefaultLimitNPROC=
,DefaultLimitMEMLOCK=
,DefaultLimitLOCKS=
,DefaultLimitSIGPENDING=
,DefaultLimitMSGQUEUE=
,DefaultLimitNICE=
,DefaultLimitRTPRIO=
,DefaultLimitRTTIME=
设置默认的 单元资源限制(详见 setrlimit(2))。相当于设置单元文件中 LimitXXX= 指令的默认值。这些指令的值有两种表示法,一个单独的
value
值表示将软硬两种限制设为同一个值。而冒号分隔的soft:hard
值表示分别设置软限制与硬限制(例如 DefaultLimitAS=4G:16G)。特殊值infinity
表示没有限制。对于以字节为单位的选项,可以使用以1024为基数的 K, M, G, T, P, E 后缀(例如 DefaultLimitAS=16G)。对于时间限制,可以加上 "ms"(毫秒), "s"(秒), "min"(分钟), "h"(小时), "d"(天), "w"(周) 等明确的时间单位后缀 (systemd.time(7))。如果仅设置了一个整数而没有单位,那么对于DefaultLimitCPU=
来说默认单位是秒。而对于DefaultLimitRTTIME=
来说默认单位是微秒(百万分之一秒)。注意,这些资源限制值的实际效果可能会受到各自有效粒度的影响。例如DefaultLimitCPU=
所设置的时间会被向上取整到一秒钟的整数倍。这些默认设置可以被单元文件中对应的 LimitXXX= 指令覆盖。注意,这里的资源限制仅作用于单元,并不作用于 systemd(PID=1) 进程自身。
参见
systemd(1), systemd.directives(7), systemd.exec(5), systemd.service(5), environ(7), capabilities(7)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论