「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

3つの方法:

  • mvnを起動する前に変数を設定(およびエクスポート)

  • nohup の起動時に変数を設定します。

    FORMAVEN=valueForMaven nohup $COMMAND > logfile
    
  • envを使用した変数の設定

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

関連情報