Jenkinsの自動アップグレードを実行し、
Java11に切り替えたのに、Jenkinsが起動しない…という事で困りましたが、以下の対応で解決しました。
環境
Amazon Linux 2 です。
Jenkinsのアップグレード(2.332.3 → 2.387.3)でハマりました。
解決方法
/etc/rc.d/init.d/jenkins について、以下の箇所を変更。
1.↓の部分から、末尾の「 --daemon」をカット。
PARAMS="--logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon"
2.↓の2行をまるごと削除。
[ -n "$JENKINS_HANDLER_MAX" ] && PARAMS="$PARAMS --handlerCountMax=$JENKINS_HANDLER_MAX"
[ -n "$JENKINS_HANDLER_IDLE" ] && PARAMS="$PARAMS --handlerCountMaxIdle=$JENKINS_HANDLER_IDLE"
その後、↓を実行すれば無事に起動しました。
$ sudo systemctl daemon-reload
$ sudo systemctl start jenkins
それでもダメなら
それでも解決しない場合、↓のコマンドでエラーを確認すると何か分かるかもです。
$ journalctl -xe
(起動エラー時に、見る様にと言われる2つのコマンドのうちの2つ目です)
$ sudo systemctl start jenkins
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
例えば、最初の「 --daemon」をカットする前には、↓の様なエラーが出ていました。
jenkins[32055]: Starting Jenkins Exception in thread "main" java.lang.IllegalArgumentException: Unrecognized option: --daemon
jenkins[32055]: at winstone.cmdline.CmdLineParser.parse(CmdLineParser.java:53)
jenkins[32055]: at winstone.Launcher.getArgsFromCommandLine(Launcher.java:400)
jenkins[32055]: at winstone.Launcher.main(Launcher.java:362)
jenkins[32055]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jenkins[32055]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jenkins[32055]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jenkins[32055]: at java.base/java.lang.reflect.Method.invoke(Method.java:566)
jenkins[32055]: at executable.Main.main(Main.java:347)
Jenkinsのバージョン戻しの簡便さに感謝
バックアップしておいた jenkins.war に差し替えてJenkins再起動したら、ひとまずは以前のバージョンで動くというJenkinsのバージョン戻しの簡便さに感謝する機会にもなりました。
初のQiita投稿でした。
どなたかのお役に立てば幸いです。
参考記事
-
Jenkins 2.357から、Java11以上が必須になった件への対応方法
https://souiunogaii.hatenablog.com/entry/jenkins_java8_java11#%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95 -
Jenkins 2.357(2022年6月28日リリース)から、Java11以上が必須というアナウンス
https://www.jenkins.io/blog/2022/06/28/require-java-11/ -
「handlerCountMax」や「handlerCountMaxIdle」を起動スクリプトから除去すると良いという stack overflow の回答
https://stackoverflow.com/questions/74250800/jenkins-wont-start-2-375-with-unrecognized-option-handlercountmax-100