私はLinux初心者です!サーバーがあり、Jenkinsをインストールしました。 jenkinsがコンパイルされた後にアプリケーションを実行する必要があるbashスクリプトを作成する必要があります(またはすでに起動している場合は再起動します)。私はLinuxでscreen utilを試しましたが、うまくいきません。私は次のスクリプトを書いた。
screen -X -S JavaTelegramBot quit
screen -d -m -S JavaTelegramBot
screen -X -S JavaTelegramBot java -jar "path/to/jar"
ヒントを与えるscreen -ls
と空白なので、アプリは機能しません。私もnohupを使ってみました。 Jenkinsがビルドを完了するまで数秒間だけアプリケーションを起動します。ビルド後、jenkinsでcmdコマンドを使用してスクリプトを起動しました。
答え1
これはジェンキンスによる。プロセスツリーキラー、ジョブが終了した後にJenkinsジョブによって開始されたすべてのプロセスを終了します(screen / tmux / nohup / etcを使用してバックグラウンドでジョブを実行する場合も同様です)。
上記の文書によると、Jenkinsが長期実行プロセスを終了するのを防ぐ方法は、環境変数を設定することです。
ビルドでデーモンを実行し続けたい場合...
これを達成する便利な方法は、JenkinsのProcessTreeKillerが探している環境変数BUILD_IDを変更することです。これにより、JenkinsはデーモンがJenkinsビルドによって生成されなかったと仮定します。たとえば、
BUILD_ID=dontKillMe /usr/apache/bin/httpd
Jenkins Pipelineの場合は、BUILD_IDの代わりにJENKINS_NODE_COOKIEを使用してください。