我想通过 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)。