Jenkins宣言型パイプラインを使用して、バックグラウンドでjavaプロセスを実行する方法を探しています。以下はコードのスニペットです
stage('Deploy'){
        steps{
            script{
                withEnv(['BUILD_ID=dontkill']) {
                    sh "nohup java -jar test-0.0.1-SNAPSHOT.war &"
                }
            }
        }
}
JenkinsのProcessTreeKillerを既に認識しており、すべての回答が同じことを提案しています。私は、運のないステップブロック内の環境を使用しようとしました。
Jenkinsバージョン:2.60.1
パイプラインプラグイン:1.1.7
どんな助けも大歓迎です。
                  何が起こるのですか?エラーメッセージ?サイレントフェイル?
                
                
                  
                    —
                    Bレイヤー
                    
                  
                
              
                  実行中のJavaプロセスがありません。これは私のパイプラインの最終段階なので、jenkinsが次の瞬間に開始して終了するのではないかと推測しています。
                
                
                  
                    —
                    ダラニダール
                    
                  
                
              
                  スレーブで直接コマンドを実行するとどうなりますか?エージェント/スレーブホストにログインし、ジョブのワークスペースに移動し(または、クリーンアップされた場合は、warファイルをどこかにコピーします(
                
                  
                    —
                    Bレイヤー
                    
                  
                
              /tmpたとえば... ))、二重引用符の間のすべてを実行します。
                
                  また、ワークスペースが完全に消去されていない場合は、シェルコマンドが実行されるディレクトリでnohup.outという名前のファイルを探します。nohupは、出力がリダイレクトされない場合、そのようなファイルに自動的にログを記録します。
                
                
                  
                    —
                    Bレイヤー
                    
                  
                
              
                  @BlairM非ログイン非対話型シェルを介してjenkinsユーザーで試してみると、同じスクリプトが正常に実行されます。二重引用符で実行しても違いはありません。nohup.outは存在しますが、0 KBです。
                
                
                  
                    —
                    ダラニダール