systemctl은 bash 명령을 환경 변수로 추가합니다.

systemctl은 bash 명령을 환경 변수로 추가합니다.

이 줄을 systemctl 파일의 환경으로 사용하고 싶습니다.

Environment="PGBOUNCER_IP=$(ip -json addr show $interface |   jq -r '.[] | .addr_info[] | select(.family == "inet") | .local'| grep -v '127.0.0.1')"

하지만 그 값을 고려하지 않고 전체 명령을 취합니다.

파일에 넣고 systemctl에서 호출해 보았습니다.

ExecStartPre=/bin/bash -c 'source envfile'

하지만 행운은 없어

답변1

해결 방법을 찾았습니다.

ExecStartPre=/bin/bash -c "/bin/systemctl set-environment PGBOUNCER_IP=$(ip -json addr show $interface |   jq -r '.[] | .addr_info[] | select(.family == \"inet\") | .local'| grep -v '127.0.0.1')"

관련 정보