У меня есть этот файл 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» повторяются много раз. Есть ли способ сохранить их в переменных и использовать вместо них?
Вероятно, самое близкое, что могло бы соответствовать вашим потребностям, - это использование 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
Возможно, вы захотите, чтобы ваши переменные были установлены по-другому. Я оставлю это на ваше усмотрение.