“systemd”文件中的变量?

“systemd”文件中的变量?

我有这个 systemd 文件:

  [Unit]
  Description=something website
  After=syslog.target
  Requires=postgresql.service

  [Service]
  ExecStart=/home/my_user/my_webapp/bin/ foreground
  ExecStop=/home/my_user/my_webapp/bin/ stop
  Restart=on-abort
  WorkingDirectory=/home/my_user/my_webapp/bin
  SyslogIdentifier=my_webapp_web_app
  User=my_user

  [Install]
  WantedBy=multi-user.target

如您所见,“my_webapp”和“my_user”重复多次。有没有办法将它们存储到变量中并改用变量?

答案1

可能最能满足您需求的就是使用该EnvironmentFile选项。

# file: /home/my_user/my_webapp/environment
# included in systemd unit my_webapp
# EnvironmentFile=-/home/my_user/my_webapp/environment
BASEDIR=/home/my_user/my_webapp

你的新单位

[Unit]
Description=something website
After=syslog.target
Requires=postgresql.service

[Service]
ExecStart=$BASEDIR/bin/ foreground
ExecStop=$BASEDIR/bin/ stop
Restart=on-abort
WorkingDirectory=$BASEDIR/bin
SyslogIdentifier=my_webapp_web_app
User=my_user

[Install]
WantedBy=multi-user.target

您可能希望以不同的方式设置变量。我将把调整留给您。

相关内容