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

yan*_*ana 3 shell shell-script systemd

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

use*_*686 5

使用 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
Run Code Online (Sandbox Code Playgroud)