当前位置: 首页 > 文档资料 > systemd 中文手册 >

systemd-run-generator 中文手册

优质
小牛编辑
136浏览
2023-12-01

名称

systemd-run-generator — 将内核引导参数中的命令封装为系统服务

大纲

/usr/lib/systemd/system-generators/systemd-run-generator

描述

systemd-run-generator生成器能够理解如下三个内核引导参数:

systemd.run= 设置的命令,将会被封装为kernel-command-line.service 服务,并被用作系统的启动目标。服务类型将被设为Type=oneshot ,并且默认配置为 SuccessAction=exitFailureAction=exit ,以确保在命令执行结束之后立即关闭系统。如果可能,命令的退出状态将被传递给调用此命令的容器管理器(例如systemd-nspawn(7)),并有可能会被进一步传递给调用容器管理器的 shell 。多次使用该内核引导参数表示依次将每个命令按顺序放入多个 ExecStart= 中(一条命令对应一个)。命令将作为常规服务执行,也就是DefaultDependencies=On

systemd.run_success_action=systemd.run_failure_action=用于设置在命令执行完成之后的动作。设为 "none" 表示不做任何动作,保持系统继续运行。对于其他可用值,可以参见systemd.unit(5) 手册。

systemd-run-generator 遵守systemd.generator(7) 规范。

例子

向容器内添加一个用户(使用systemd-nspawn(7) 工具):

# systemd-nspawn -D mycontainer -b systemd.run='"adduser test"'

注意,上述命令中的两层引号都是必须的!外层的单引号将会首先被 shell 在向 systemd-nspawn 传递参数时剥离,内层的双引号会一直传递到容器的内核命令行上,最后被systemd-run-generator 剥离,最终确保由两个单词组成的命令adduser test 完整的传递到最终生成的单元文件中,而不会在中途被 shell 或单元生成器拆散。

参见

systemd(1),systemctl(1),kernel-command-line(7),systemd-nspawn(7),systemd.unit(5),systemd.service(5)