"nohup"으로 실행되는 프로그램에 대한 환경 변수를 설정하는 방법은 무엇입니까?

"nohup"으로 실행되는 프로그램에 대한 환경 변수를 설정하는 방법은 무엇입니까?

(기존 Bash 스크립트를 편집하고 있으므로 여기서 어리석은 실수를 저지를 수도 있습니다...)

환경 변수와 함께 명령을 다음과 같은 인수로 저장하는 쉘 스크립트가 있습니다.

COMMAND="mvn clean install -P $MAVEN_PROFILE"

그런 다음 실행되는 명령은 nohup대략 다음과 같습니다.

nohup $COMMAND > logfile

이것은 작동합니다.

이제 Maven에서 접근할 수 있는 환경 변수를 설정하고 싶습니다. 나는 다음과 같은 방법을 시도했습니다.

COMMAND="FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE"

...그러나 다음과 같이 종료됩니다.

nohup: failed to run command `FORMAVEN=valueForMaven': No such file or directory

여기에는 내가 이해하지 못하거나 심지어 알지도 못하는 몇 가지 관련 없는 개념이 작용하고 있는 것 같습니다. 위의 작업을 수행하려면 무엇이 필요합니까?

답변1

세 가지 방법:

  • mvn을 시작하기 전에 변수 설정(및 내보내기)

  • nohup이 시작될 때 변수를 설정합니다.

    FORMAVEN=valueForMaven nohup $COMMAND > logfile
    
  • env를 사용하여 변수 설정

    COMMAND="env FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE"
    

관련 정보