환경 변수를 사용하여 서비스 작업 디렉터리를 설정하는 방법은 무엇입니까? 다음은 서비스 구성의 예입니다.
[Service]
Environment=MYWORKINGDIR=/tmp
WorkingDirectory=${MYWORKINGDIR}
와 유사한 오류가 발생합니다 not an absolute path
. 시작 부분에 슬래시를 추가하면 오류가 "수정"되지만 경로는 여전히 찾을 수 없습니다.
[Service]
Environment=MYWORKINGDIR=/tmp
WorkingDirectory=/${MYWORKINGDIR}
가능합니까? 어떤 지시문이 환경 변수를 사용할 수 있는지/사용할 수 없는지에 대한 문서가 명확하지 않습니다.
http://www.freedesktop.org/software/systemd/man/systemd.exec.html
답변1
답변2
내가 찾은 한 가지 해결 방법은 WorkingDirectory=에 심볼릭 링크를 지정하고 서비스를 시작하기 전에 심볼릭 링크를 변경하는 것이었습니다.
나는 그것이 같지 않다는 것을 알고 있지만 당신과 같은 방식으로 내가 해결하려고 했던 문제를 해결했습니다.
답변3
모든 늦게 오신 분들을 위해 여기에 유용한 솔루션이 있습니다.https://unix.stackexchange.com/a/742644/92366
간단히 말해서, 너무 복잡한 것이 필요하지 않은 경우 다음을 사용할 수 있습니다.
ExecStart=/bin/bash -c "cd \"/path/${variable_subpath}/\";echo \"${PWD}\";"