如何以编程方式修改 systemd 单元文件?

如何以编程方式修改 systemd 单元文件?

我想通过 shell 脚本编辑 systemd 的单元文件。我想更改该单元的唯一执行开始行。使用systemctl edit对我来说看起来很聪明,但该命令需要将编辑器设置为SYSTEMD_EDITOR环境变量。有没有其他SYSTEMD_EDITOR可以像 一样使用的替代方案echo 'ExecStart=foo' | SYSTEMD_EDITOR=SOMETHING systemctl edit bar

答案1

你不需要需要通过命令 – 您可以直接为 systemd 使用的“覆盖”机制创建相同的文件:

mkdir -p /etc/systemd/system/foobar.service.d

cat > /etc/systemd/system/foobar.service.d/10-my-edits.conf <<EOF
[Service]
ExecStart=
ExecStart=foo
EOF

systemctl daemon-reload

覆盖或“插入”机制记录在systemd.unit(5)

相关内容