systemd-run-generator 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 · 指令索引systemd-241

名称

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)