我有一个应用程序需要使用 commando 源来设置他的环境文件。
[Unit]
Description=Programname
After=syslog.target network.target
[Service]
User=root
ExecStartPre=source /opt/environmentname/bin/activate enviromentname
ExecStart=/var/programname/programname -f /etc/programname/programconfig.conf
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
现在,Systemd 抱怨 source 因为这不是绝对路径而且 source 是 bash 的内置所以我试过了
ExecStartPre=/bin/bash -c "source /opt/environmentname/bin/activate enviromentname"
Run Code Online (Sandbox Code Playgroud)
我们使用 source 而不是 chmod +x 运行脚本是因为供应商的要求。
那么有没有办法让这个工作?或者我们需要使用分叉之类的东西吗?
我们如何在 Systemd 单元文件中正确使用 bash 内置函数?