安装了jenkins有段时间了 一直注意到构建时间差了10来个小时 一查发现时区是美国 受不了 赶紧一搜教程 你别说 前人踩坑 后人躺平 嘿嘿
有效办法1:
打开jenkins的【系统管理】---> 【脚本命令行】,在命令框中输入一下命令【时间时区设为 亚洲上海】:
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
有效办法2:
点右上角用户的下拉箭头【构建】->【左边点设置】->【最底下】的用户时区
如果你是官方镜像docker运行的话
启动命令加上这个 环境变量即可 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai
但是我是强迫症
看到系统变量是美国 总感觉以后其他插件或者什么会取这个值 会遇到问题 所以我就继续探查
一定要改掉这个成上海 不能显示说美国
首先看自己 timedatectl | grep "Time zone" 系统是不是 Time zone: Asia/Shanghai (CST, +0800)
不是改了再继续
一番探查 我的是apt install安装的 开始是docker 但是问题太多 而且我感觉后面ssh执行也不方便 虽然但是也没啥 主要是我自个在用 哈哈 好点 docker毕竟是为了解决多人员应用开发环境冲突做的 明白自己的需求到底是什么 不要一味追求什么
说了这么多 解决也简单 说下我的思路
百度出来改配置文件
/etc/sysconfig/jenkins
/etc/default/jenkins
第二个有我的 但是我去里面改了 然后systemctl restart jenkins 改了几次打log也没变化
索性看看有哪些文件 find /etc -name 'jenkins'
查看 第一个为空 第二个看起来像 init.d后来看 应该是重启才会 里面可以加jvm参数 也不行 所以放弃
然后我就继续排查 这个时候注意到 我是用夫人 systemctl restart jenkins 然后就查看具体说启动了什么服务的配置脚本
cat /etc/systemd/system/jenkins.service
cat /etc/systemd/system/multi-user.target.wants/jenkins.service
找到两个 哈哈 很幸运 第二个就是 里面有
刚好这里面对于jinfo时的信息 难怪改其他没用
改了后重启系统提示配置文件需要执行命令 sudo systemctl daemon-reload
然后
太棒啦
本文不高级 很朴素 很真实的踩坑记录 其实我当时有想看源码的冲动 后来一想应该就普通变量的基础问题 希望大家可以学习到问题的排查思路 遂迎难而上 迎难而解~