首页 > 解决方案 > Systemd - 'Unit'部分中的未知左值'ConditionEnvironment'

问题描述

简单的 systemd 服务未按预期工作

服务名称:test.service

[Unit]
Description=Test
ConditionEnvironment=STACK=prod

[Service]
Restart=always
ExecStart=/bin/bash -l -c 'echo "do prod stuff!!!"'

[Install]
WantedBy=default.target
sudo systemctl daemon-reload
sudo service test restart
journalctl -u test -f

ConditionEnvironment当我尝试使用该设置时,Systemd 出现错误。

Apr 27 13:16:33 ip-172-31-105-2 systemd[1]: Failed to start Test.
Apr 27 13:19:53 ip-172-31-105-2 systemd[1]: /etc/systemd/system/test.service:3: Unknown lvalue 'ConditionEnvironment' in section 'Unit'

Systemd ConditionEnvironment 文档

标签: linuxunixenvironment-variablessystemd

解决方案


在写这个问题时,我找到了答案。

ConditionEnvironment设置是在 systemd 版本 246 中添加的。

在此处查看发行说明

似乎 Ubuntu 附带早期版本。

ubuntu ~$ systemctl --version
systemd 237 (245.4-4ubuntu3.6)

在此处更新 systemd 的注意事项:https ://askubuntu.com/questions/627174/how-would-i-upgrade-systemd


推荐阅读