systemd-run-generator 中文手册
名称
systemd-run-generator — 将内核引导参数中的命令封装为系统服务
大纲
/usr/lib/systemd/system-generators/systemd-run-generator
描述
systemd-run-generator
生成器能够理解如下三个内核引导参数:
由 systemd.run=
设置的命令,将会被封装为kernel-command-line.service
服务,并被用作系统的启动目标。服务类型将被设为Type=oneshot
,并且默认配置为 SuccessAction=exit
与FailureAction=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)