LoadCredential= 中指定的 systemd CREDENTIALS_DIRECTORY 未通过 ExecStart 命令行传递

LoadCredential= 中指定的 systemd CREDENTIALS_DIRECTORY 未通过 ExecStart 命令行传递

我有以下 systemd 配置文件salt_server.service

[Unit]
Description=Salt Sensor Service
After=mysql.service
StartLimitBurst=5
StartLimitIntervalSec=10

[Service]
SyslogIdentifier=salt_sensor_service
Type=simple
Restart=always
RestartSec=1
User=salty
LoadCredential=credentials.json:/home/salty/private/salty_credentials.json
ExecStart=/usr/local/bin/salt_server -credentials=${CREDENTIALS_DIRECTORY}/credentials.json -log_level=debug
StandardOutput=syslog
StandardError=syslog
ProtectSystem=strict
ProtectHome=true
PrivateUsers=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target

该行产生的命令行ExecStart

/usr/local/bin/salt_server -credentials=/credentials.json -log_level=debug

即 是${CREDENTIALS_DIRECTORY}空字符串。我做错了什么?我尝试了Environment=和的各种组合,PassEnvironment=但无法使其工作。

我也尝试过$CREDENTIALS_DIRECTORY许多其他没有希望的选择。

请注意,凭证文件和文件夹均存在且可供用户读取salty

有任何想法吗?

相关内容