systemctl.service 파일의 execstart에서 $HOME 환경 변수 사용 허용

systemctl.service 파일의 execstart에서 $HOME 환경 변수 사용 허용

나는 이런 일을하고 싶다 :

[Unit]
Description=ROT13 demo service
After=network.target
StartLimitIntervalSec=1

[Service]
Type=simple
User=oleg
ExecStart=$HOME/.local/bin/cprev-agent   # user the home env var

[Install]
WantedBy=multi-user.target

저처럼 $HOME 환경 변수를 사용할 수 있는 방법이 있나요, 아니면 하드코딩해야 하나요?

답변1

이후 버전의 systemd에서 이를 변경했을 수 있지만 237 부근에서는 허용되지 않거나 $프로그램 %에서 이 경로도 절대 경로여야 합니다. 예를 들어 다음과 같이 이 문제를 해결할 수 있습니다.

ExecStart=/usr/bin/bash -c 'exec $HOME/.local/bin/cprev-agent'

이것은 $HOME쉘에 의해 확장됩니다. systemd는 이러한 변수가 단일 단어인 경우에만 확장합니다. ${HOME}언제든지 systemd에 교체를 요청할 수 있습니다 .

관련 정보