![在启动 systemd 服务之前执行命令](https://linux22.com/image/763020/%E5%9C%A8%E5%90%AF%E5%8A%A8%20systemd%20%E6%9C%8D%E5%8A%A1%E4%B9%8B%E5%89%8D%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4.png)
我想在每次启动服务之前执行一个脚本。
我知道我可以ExecStartPre
在服务定义文件中使用,但我想知道是否可以在不编辑来自服务包的文件的情况下实现。
该脚本是一个简单的命令,完成后就会退出,它会创建主服务使用的文件(它从安全存储中获取 TLS 证书和密钥)。
答案1
当然可以。您可以使用特定的独立包括:
mkdir /etc/systemd/service/<servicename>.service.d
echo /etc/systemd/service/<servicename>.service.d/<anything>.conf << EOF
[Service]
ExecStartPre=<path to script>
EOF
systemctl daemon-reload
瞧!
参考:搜索“插入“ 在systemd.unit — 单元配置