这是可以使用我们的多个免费在线工作站之一(例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器)在 OnWorks 免费托管服务提供商中运行的命令 systemd
程序:
您的姓名
systemd, init - systemd 系统和服务管理器
概要
systemd [选项...]
初始化 [选项...] {命令}
商品描述
systemd 是 Linux 操作系统的系统和服务管理器。 当第一次运行时
启动时的进程(作为 PID 1),它充当启动和维护用户空间的初始化系统
服务。
为了与 SysV 兼容,如果 systemd 被称为 初始化 和一个不为 1 的 PID,它会
执行 远程登录 并未经修改地传递所有命令行参数。 这意味着 初始化 和
远程登录 当从正常登录会话调用时,它们几乎是等效的。 看 远程登录(8)
更多信息。
当作为系统实例运行时,systemd 解释配置文件 system.conf 和
system.conf.d 目录中的文件; 当作为用户实例运行时,systemd 解释
配置文件 user.conf 和 user.conf.d 目录中的文件。 看 systemd-
系统配置文件(5) 了解更多信息。
配置
理解以下选项:
- 测试
确定启动顺序,转储并退出。 这是一个对调试有用的选项
只。
--dump-配置项
转储理解的单元配置项。 这将输出一个简洁但完整的列表
单元定义文件中理解的配置项。
--单位=
设置默认单位以在启动时激活。 如果未指定,则默认为 default.target。
- 系统, - 用户
对于 - 系统, 告诉 systemd 运行一个系统实例,即使进程 ID 不是 1,
即 systemd 不是作为 init 进程运行的。 - 用户 相反,运行用户
即使进程 ID 为 1 的实例。通常情况下,应该不需要通过
这些选项,因为 systemd 会自动检测它启动的模式。这些
因此,除了调试之外,选项几乎没有用处。 注意不支持
在 systemd 运行的情况下启动和维护一个完整的系统 - 系统 模式,但 PID
不是 1. 在实践中,通过 - 系统 显式仅与
- 测试.
--转储核心
在崩溃时启用核心转储。 作为用户实例运行时,此开关无效。
此设置也可以在内核命令行启动期间通过
systemd.dump_core= 选项,见下文。
--崩溃-vt=VT
崩溃时切换到特定的虚拟控制台 (VT)。 取一个正整数
范围 1–63,或布尔参数。 如果传递的是整数,则选择要切换的 VT
到。 如果 含, VT 内核消息写入被选中。 如果 没有, 没有 VT 开关是
尝试过。 作为用户实例运行时,此开关无效。 此设置可能
也可以在引导期间通过内核命令行启用 systemd.crash_vt =
选项,见下文。
--崩溃外壳
在崩溃时运行 shell。 作为用户实例运行时,此开关无效。 这个
也可以在引导期间启用设置,在内核命令行上通过
systemd.crash_shell= 选项,见下文。
--崩溃重启
系统崩溃时自动重启。 此开关在作为运行时无效
用户实例。 此设置也可以在引导期间启用,在内核命令上
线路通过 systemd.crash_reboot= 选项,见下文。
--确认生成
生成进程时要求确认。 此开关在运行时无效
用户实例。
--显示状态=
启动时显示简洁的服务状态信息。 此开关在以下情况下无效
作为用户实例运行。 接受一个可以省略的布尔参数,即
解释为 true.
--log-目标=
设置日志目标。 参数必须是以下之一 领事, 日志, 短信, 日志或 kmsg, 空.
--日志级别=
设置日志级别。 作为参数,它接受数字日志级别或众所周知的
系统日志(3) 符号名(小写): EMERG, 警报, 暴击, 犯错, 警告, 注意, info,
调试.
--日志颜色=
突出显示重要的日志消息。 参数是一个布尔值。 如果论证是
省略,默认为 true.
--日志位置=
在日志消息中包含代码位置。 这主要与调试目的相关。
参数是一个布尔值。 如果省略参数,则默认为 true.
--默认标准输出=, --默认标准错误=
分别为所有服务和套接字设置默认输出或错误输出。
也就是说,控制默认值 标准输出= 和 标准误差= (见
系统执行程序(5) 详情)。 采取其中之一 继承, 空, TTY, 日志,
日志+控制台, 系统日志, 系统日志+控制台, 短信, 短信+控制台. 如果论证是
省略 --默认标准输出= 默认为 日志 和 --默认标准错误=
至 继承.
--机器ID=
覆盖硬盘驱动器上设置的机器 ID,对于网络引导或
容器。 不能设置为全零。
-h, - 帮帮我
打印简短的帮助文本并退出。
- 版
打印一个简短的版本字符串并退出。
概念
systemd 提供了一个称为“单位”的各种实体之间的依赖系统,共 12 个
不同种类。 单元封装了与系统启动相关的各种对象
和维护。 大多数单元在单元配置文件中配置,其
语法和基本选项集在 系统单元(5),然而有些是创造的
自动从其他配置,从系统状态动态或以编程方式
在运行时。 单元可能是“活动的”(意思是开始、绑定、插入……,取决于
单元类型,见下文),或“非活动”(意思是停止、未绑定、未插电等),如
以及在被激活或去激活的过程中,即在两个状态之间
(这些状态称为“激活”、“停用”)。 一个特殊的“失败”状态是
也可用,这与“非活动”非常相似,并在服务时输入
以某种方式失败(进程在退出时返回错误代码,或崩溃,或操作定时
出去)。 如果进入此状态,将记录原因,以供日后参考。 注意
各种单元类型可能有许多附加的子状态,它们被映射到
这里描述了五种广义单位状态。
以下单位类型可用:
1. 服务单元,启动和控制守护进程及其组成的进程。 为了
详情见 系统服务(5)。
2. Socket 单元,在系统中封装本地 IPC 或网络套接字,用于
基于套接字的激活。 有关插座单元的详细信息,请参见 系统套接字(5),用于
有关基于套接字的激活和其他形式的激活的详细信息,请参阅 守护(7)。
3. 目标单元可用于对单元进行分组,或提供众所周知的同步点
在启动期间,请参阅 系统目标(5)。
4.设备单元在systemd中暴露内核设备,可用于实现
基于设备的激活。 有关详细信息,请参阅 系统设备(5)。
5.挂载单元控制文件系统中的挂载点,详见 系统挂载(5)。
6. 自动挂载单元提供自动挂载功能,用于按需挂载文件系统
以及并行启动。 看 systemd.自动挂载(5)。
7. 定时器单元可用于基于定时器触发其他单元的激活。 你
可以在 系统计时器(5)。
8. 交换单元与挂载单元非常相似,封装内存交换分区或
操作系统的文件。 它们在 系统交换(5)。
9. 当文件系统对象发生变化或发生变化时,可以使用路径单元来激活其他服务
被修改。 看 系统路径(5)。
10. 切片单元可用于对管理系统进程的单元进行分组(例如服务
和范围单元)在分层树中用于资源管理。 看
系统切片(5)。
11.范围单元类似于服务单元,但管理外部进程而不是
启动它们。 看 系统范围(5)。
单元被命名为它们的配置文件。 有些单位有特殊的语义。 一种
详细列表可在 systemd.特殊(7)。
systemd 知道各种依赖关系,包括正需求和负需求
依赖关系(即 需要= 和 冲突=) 以及排序依赖项 (之后= 和
之前=)。 注意:排序和需求依赖是正交的。 如果只是一个要求
两个单元之间存在依赖关系(例如 foo.service 需要 bar.service),但没有
排序依赖(例如 foo.service 在 bar.service 之后)并且两者都被请求启动,
它们将并行启动。 这是一种常见的模式,要求和
排序依赖放在两个单元之间。 还要注意的是,大多数
依赖项由 systemd 隐式创建和维护。 大多数情况下,应该是
没有必要手动声明额外的依赖项,但是可以这样做
本。
应用程序和单元(通过依赖关系)可以请求单元的状态改变。 在
在 systemd 中,这些请求被封装为“作业”并保存在作业队列中。 工作可能
成功或可能失败,它们的执行是根据
他们预定的单位。
在启动时 systemd 激活目标单元 default.target 其工作是在启动时激活
通过依赖项将服务和其他启动单元拉入。 通常,单位
name 只是 graphics.target 的别名(符号链接)(用于全功能引导到
UI)或 multi-user.target(用于有限的控制台引导,用于嵌入式或服务器
环境或类似环境; graphics.target 的一个子集)。 然而,它是在自由裁量权
将其配置为任何其他目标单元的别名。 看
systemd.特殊(7) 有关这些目标单位的详细信息。
进程 systemd spawns 被放置在以
它们属于私有 systemd 层次结构中的单元。 (看 cgroups.txt[1] 更多
有关控制组的信息,或简称“cgroups”)。 systemd 使用它来有效地
跟踪进程。 控制组信息在内核中维护,并且是
可通过文件系统层次结构访问(在 /sys/fs/cgroup/systemd/),或在工具中
如 systemd-cgls(1)或 ps(1)(ps xawf -eo pid、用户、cgroup、参数 特别有用
列出所有进程和它们所属的系统单元。)。
systemd 在很大程度上兼容 SysV init 系统:SysV init 脚本是
支持并简单地作为替代(虽然有限)配置文件格式读取。
提供了 SysV /dev/initctl 接口,以及兼容性实现
提供各种 SysV 客户端工具。 除此之外,各种成熟的 Unix
功能如 / etc / fstab文件 或者支持utmp数据库。
systemd 有一个最小事务系统:如果一个单元被要求启动或关闭
它会将它及其所有依赖项添加到临时事务中。 然后,它会验证
如果交易是一致的(即所有单位的排序是否是无周期的)。
如果不是,systemd 将尝试修复它,并从
可能会删除循环的事务。 此外,systemd 试图抑制非必要的工作
在将停止正在运行的服务的事务中。 最后检查是否
事务的作业与已经排队的作业相矛盾,并且可选地
然后交易被中止。 如果一切都解决了并且交易是一致的并且
将其影响降至最低,它与所有已经完成的工作合并并添加到
运行队列。 这实际上意味着在执行请求的操作之前,systemd
将验证它是否有意义,如果可能的话修复它,并且只有在它真的失败时才会失败
无法工作。
Systemd 包含需要作为一部分执行的各种任务的本机实现
启动过程。 例如,它设置主机名或配置环回网络
设备。 它还设置和挂载各种 API 文件系统,例如 /系统 或 /proc。
有关 systemd 背后的概念和思想的更多信息,请参阅
原版 工艺设计 文件[2]。
请注意,systemd 提供的部分但并非所有接口都包含在 接口
稳定性 承诺[3]。
单元可以在启动和系统管理器重新加载时动态生成,例如
基于内核命令行上传递的其他配置文件或参数。 为了
详情见 systemd.生成器(7)。
在容器或 initrd 环境中调用 systemd 的系统应该实现
容器 接口[4]或 初始化 接口[5] 规格,分别。
目录
系统单元目录
systemd 系统管理器从各个目录读取单元配置。 套餐
想要安装单元文件的应该把它们放在返回的目录中
包配置 systemd --variable=systemdsystemunitdir. 检查的其他目录是
/usr/local/lib/systemd/system 和 /lib/systemd/system。 用户配置总是需要
优先权。 包配置 systemd --variable=systemd系统配置目录 返回路径
系统配置目录。 包应该改变这些内容
目录只与 enable 和 关闭 的命令 systemctl(1) 工具。 满的
目录列表在 系统单元(5)。
用户单位目录
类似的规则适用于用户单元目录。 然而,这里的 XDG 基值
目录 规范[6] 之后是寻找单位。 应用程序应放置其
返回的目录中的单元文件 包配置 systemd
--variable=systemduserunitdir. 全局配置在报告的目录中完成
by 包配置 systemd --variable=systemduserconfdir。 该 enable 和 关闭 命令
的 systemctl(1) 工具可以处理全局(即对于所有用户)和私有(对于
一个用户)启用/禁用单元。 目录的完整列表在
系统单元(5)。
SysV 初始化脚本目录
SysV init 脚本目录的位置因发行版而异。 如果
systemd 找不到请求服务的本地单元文件,它会寻找一个
同名的 SysV 初始化脚本(删除了 .service 后缀)。
SysV 运行级别链接场目录
SysV 运行级别链接场目录的位置因发行版而异。
systemd 在确定服务是否应
被启用。 请注意,具有本机单元配置文件的服务单元不能
通过在 SysV 运行级别链接场中激活它开始。
讯号
目标期限
收到此信号后,systemd 系统管理器将其状态序列化,重新执行
本身并再次反序列化保存的状态。 这主要相当于 systemctl
守护进程重新执行.
当收到此信号时,systemd 用户管理器将启动 exit.target 单元。
这主要相当于 systemctl - 用户 开始 退出目标.
SIGINT
收到此信号后,systemd 系统管理器将启动
ctrl-alt-del.target 单位。 这主要相当于 systemctl 开始
ctl-alt-del.目标. 如果每 7 秒收到超过 2 次此信号,则立即
重启被触发。 请注意,在控制台上按 Ctrl-Alt-Del 将触发此
信号。 因此,如果重启挂起,请在 7 秒内按 Ctrl-Alt-Del 超过 2 次
是触发立即重启的相对安全的方式。
systemd 用户管理器处理此信号的方式与 目标期限.
信号绞盘
收到此信号后,systemd 系统管理器将启动
kbrequest.target 单元。 这主要相当于 systemctl 开始 kbrequest.目标.
systemd 用户管理器会忽略此信号。
信号接收器
收到此信号后,systemd 管理器将启动 sigpwr.target 单元。
这主要相当于 systemctl 开始 目标文件.
信号灯1
收到此信号后,systemd 管理器将尝试重新连接到 D-Bus
总线。
信号灯2
收到此信号后,systemd 管理器会将其完整状态记录在
人类可读的形式。 记录的数据与打印的相同 系统分析 倾倒.
签到
重新加载完整的守护程序配置。 这主要相当于 systemctl
守护进程重新加载.
信号最小值+0
进入默认模式,启动 default.target 单元。 这主要相当于
systemctl 开始 默认目标.
信号最小值+1
进入救援模式,启动救援目标单元。 这主要相当于
systemctl 隔离 救援目标.
信号最小值+2
进入紧急模式,启动紧急服务单元。 这主要相当于
systemctl 隔离 紧急服务.
信号最小值+3
停止机器,启动halt.target 单元。 这主要相当于 systemctl
开始 停止目标.
信号最小值+4
关闭机器电源,启动 poweroff.target 单元。 这主要相当于
systemctl 开始 关机目标.
信号最小值+5
重新启动机器,启动reboot.target 单元。 这主要相当于
systemctl 开始 重启目标.
信号最小值+6
通过 kexec 重新启动机器,启动 kexec.target 单元。 这基本上是等价的
至 systemctl 开始 kexec.目标.
信号最小值+13
立即停止机器。
信号最小值+14
立即关闭机器电源。
信号最小值+15
立即重新启动机器。
信号最小值+16
立即使用 kexec 重新启动机器。
信号最小值+20
允许在控制台上显示状态消息,通过控制
systemd.show_status=1 在内核命令行上。
信号最小值+21
禁止在控制台上显示状态消息,通过控制
systemd.show_status=0 在内核命令行上。
信号最小值+22, 信号最小值+23
将日志级别设置为“调试”(或“信息”) 信号最小值+23),通过控制
systemd.log_level=调试 (或 systemd.log_level=信息 on 信号最小值+23) 在内核上
命令行。
信号最小值+24
立即退出管理器(仅适用于 --user 实例)。
信号最小值+26, 信号最小值+27, 信号最小值+28
将日志级别设置为“journal-or-kmsg”(或“控制台” 信号最小值+27, "kmsg" 上
信号最小值+28),通过控制 systemd.log_target=日志或 kmsg (或
systemd.log_target=控制台 on 信号最小值+27 or systemd.log_target=kmsg on 信号最小值+28)
在内核命令行上。
环境
$SYSTEMD_LOG_LEVEL
systemd 从此环境变量中读取日志级别。 这可以被覆盖
- --日志级别=.
$SYSTEMD_LOG_TARGET
systemd 从此环境变量中读取日志目标。 这可以被覆盖
- --log-目标=.
$SYSTEMD_LOG_COLOR
控制 systemd 是否突出显示重要的日志消息。 这可以被覆盖
- --日志颜色=.
$SYSTEMD_LOG_LOCATION
控制 systemd 是否随日志消息一起打印代码位置。 这可以
被覆盖 --日志位置=.
$XDG_CONFIG_HOME, $XDG_CONFIG_DIRS, $XDG_DATA_HOME, $XDG_DATA_DIRS
systemd 用户管理器根据 XDG 基值 目录
规范[6] 找到它的配置。
$SYSTEMD_UNIT_PATH
控制 systemd 查找单元文件的位置。
$SYSTEMD_SYSVINIT_PATH
控制 systemd 在何处查找 SysV 初始化脚本。
$SYSTEMD_SYSVRCND_PATH
控制 systemd 在何处查找 SysV init 脚本运行级别链接群。
$SYSTEMD_COLORS
控制是否应生成彩色输出。
$LISTEN_PID, $LISTEN_FDS, $LISTEN_FDNAMES
在基于套接字的激活期间由 systemd 为受监督的进程设置。 看
sd_listen_fds(3) 了解更多信息。
$NOTIFY_SOCKET
由 systemd 为受监督的进程设置状态和启动完成
通知。 看 sd_通知(3) 了解更多信息。
仁 指挥 LINE
当作为系统实例运行时,systemd 会解析一些内核命令行参数[7]:
系统单元=, rd.systemd.unit=
覆盖单元以在启动时激活。 默认为 default.target。 这可以使用
临时启动到不同的启动单元,例如,rescue.target 或
紧急服务。 看 systemd.特殊(7) 有关这些单位的详细信息。 选项
以“rd”为前缀。 仅在初始 RAM 磁盘 (initrd) 中受到尊重,而
这不仅仅在主系统中加前缀。
systemd.dump_core=
接受一个布尔参数。 如果 含,systemd 管理器 (PID 1) 转储核心时
崩溃。 否则,不会创建核心转储。 默认为 含.
systemd.crash_chvt =
采用正整数或布尔参数。 如果一个正整数(在范围内
1-63) 被指定,系统管理器 (PID 1) 将激活指定的虚拟
终端 (VT) 崩溃时。 默认为 没有,这意味着没有这样的开关
尝试过。 如果设置为 含,选择写入内核消息的 VT。
systemd.crash_shell=
接受一个布尔参数。 如果 含, 系统管理器 (PID 1) 生成一个 shell
延迟 10 秒后崩溃。 否则,不会产生外壳。 默认为 没有,为
安全原因,因为外壳不受密码验证保护。
systemd.crash_reboot=
接受一个布尔参数。 如果 含, 系统管理器 (PID 1) 将重新启动机器
在 10 秒延迟后崩溃时自动执行。 否则系统会挂
无限期地。 默认为 没有,以避免重启循环。 如果结合
systemd.crash_shell=,shell退出后系统重新启动。
systemd.confirm_spawn=
接受一个布尔参数。 如果 含, 系统管理器 (PID 1) 要求确认
生成进程时。 默认为 没有.
systemd.show_status=
采用布尔参数或常量 汽车。 如果 含, systemd 管理器 (PID 1)
在启动期间在控制台上显示简洁的服务状态更新。 汽车 表现得像
false 直到服务失败或启动出现明显延迟。 默认为 含,
除非 安静 作为内核命令行选项传递,在这种情况下它默认为
汽车.
systemd.log_target=, systemd.log_level=, systemd.log_color=, systemd.log_location=
控制日志输出,效果与 $SYSTEMD_LOG_TARGET,
$SYSTEMD_LOG_LEVEL, $SYSTEMD_LOG_COLOR, $SYSTEMD_LOG_LOCATION 环境变量
如上所述。
systemd.default_standard_output=, systemd.default_standard_error=
控制服务的默认标准输出和错误输出,效果相同
作为 --默认标准输出= 和 --默认标准错误= 命令行参数
以上分别介绍。
systemd.setenv=
采用 VARIABLE=VALUE 形式的字符串参数。 可用于设置默认值
添加到分叉子进程的环境变量。 可以多次使用
设置多个变量。
systemd.machine_id=
使用 32 个字符的十六进制值来设置机器 ID。 主要用于
用于网络启动,其中每次启动都需要相同的机器 ID。
安静
启动时关闭状态输出,很像 systemd.show_status = false 将。 注意
此选项也由内核本身读取并禁用内核日志输出。 通过
因此,此选项会关闭系统管理器和
核心。
调试
打开调试输出。 这相当于 systemd.log_level=调试。 注意
此选项也由内核本身读取并启用内核调试输出。 通过
因此,此选项会打开系统管理器和系统管理器的调试输出
核心。
紧急, -b
启动进入紧急模式。 这相当于 systemd.unit=emergency.target 和
出于兼容性原因而提供,并且更易于键入。
营救, 单, s, S, 1
启动进入救援模式。 这相当于 systemd.unit=rescue.target 并提供
出于兼容性原因和更容易输入。
2, 3, 4, 5
启动到指定的旧版 SysV 运行级别。 这些相当于
systemd.unit=runlevel2.target, systemd.unit=runlevel3.target,
systemd.unit=runlevel4.target和 systemd.unit=runlevel5.target分别和
出于兼容性原因而提供,并且更易于键入。
语言环境.LANG=, 语言环境.LANGUAGE=, 语言环境.LC_CTYPE=, 语言环境.LC_NUMERIC=, 语言环境.LC_TIME=,
语言环境.LC_COLLATE=, 语言环境.LC_MONETARY=, 语言环境.LC_MESSAGES=, 语言环境.LC_PAPER=,
语言环境.LC_NAME=, 语言环境.LC_ADDRESS=, 语言环境.LC_TELEPHONE=, 语言环境.LC_MEASUREMENT=,
语言环境.LC_IDENTIFICATION=
设置要使用的系统区域设置。 这会覆盖 /etc/locale.conf 中的设置。 为了
更多信息,见 本地配置文件(5)和 当地(7)。
对于核心操作系统的组件理解的其他内核命令行参数,请
指 内核命令行(7)。
袜子 AND 先进先出
/运行/systemd/通知
守护进程状态通知套接字。 这是一 AF_UNIX 数据报套接字,用于
实现守护进程通知逻辑 sd_通知(3)。
/运行/systemd/私有
在内部用作之间的通信通道 systemctl(1)和systemd进程。
这是一个 AF_UNIX 流套接字。 此接口是 systemd 私有的,不应
用于外部项目。
/dev/initctl
对 SysV 客户端接口的有限兼容性支持,由
systemd-initctl.service 单元。 这是文件系统中的命名管道。 这个界面
已过时,不应在新应用程序中使用。
使用 onworks.net 服务在线使用 systemd