변수를 사용하여 작업 디렉터리 설정

변수를 사용하여 작업 디렉터리 설정

환경 변수를 사용하여 서비스 작업 디렉터리를 설정하는 방법은 무엇입니까? 다음은 서비스 구성의 예입니다.

[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

가능합니까?

아니요, 불가능합니다.

당신은 그것을 사용할 수 있습니다 :

  • ~
  • 절대 디렉토리 경로
  • -절대 디렉토리 경로

또한, WorkingDirectory이해지정자.

답변2

내가 찾은 한 가지 해결 방법은 WorkingDirectory=에 심볼릭 링크를 지정하고 서비스를 시작하기 전에 심볼릭 링크를 변경하는 것이었습니다.

나는 그것이 같지 않다는 것을 알고 있지만 당신과 같은 방식으로 내가 해결하려고 했던 문제를 해결했습니다.

답변3

모든 늦게 오신 분들을 위해 여기에 유용한 솔루션이 있습니다.https://unix.stackexchange.com/a/742644/92366

간단히 말해서, 너무 복잡한 것이 필요하지 않은 경우 다음을 사용할 수 있습니다.

ExecStart=/bin/bash -c "cd \"/path/${variable_subpath}/\";echo \"${PWD}\";"

관련 정보