在Jenkins上安装了一些插件后,需要重启Jenkins,由于忘了当初是怎么重启的,所以就问了GPT,下面是它的回答:
我想着,jenkins运行的好好的,还看什么状态,直接restart,然后…
sudo systemctl restart jenkins
竟然报错了,看看报错明细
sudo journalctl -xe
(这时候的我完全没意识到,问题已经暴露出来了)
Cannot create session: Already running in a session or user slice
(先不跳出我的思路,继续走)
省时间直接到:
- 解决方案
- 原因分析
行吧,那我看一下状态
sudo systemctl status jenkins
这仿佛就像:家里停电了,我去开灯验证一下,确实不亮。
restart不行,那我干脆stop吧,这回没报错,但是再start的时候,又会出现
解决方案
如果通过 systemctl 不能解决Jenkins重启的问题,那就用Jenkins自带的启停来解决
# 一般在这里
cd /etc/init.d
停止 Jenkins 服务:
sudo ./jenkins stop
检查 Jenkins 状态
sudo ./jenkins status
会看到,Jenkins 已经被停用
启动 Jenkins 服务
sudo ./jenkins start
启动成功会看到
原因分析
Jenkins 如果使用 Systemd 来管理服务,通常会在 /etc/systemd/system/ 目录中找到 Jenkins 的 Systemd 单元文件 jenkins.service ,但是,我并没有在 /etc/systemd/system/ 下看到 jenkins.service ,说明 Jenkins 并没有使用 Systemd 来管理服务,所以 sudo systemctl restart jenkins
命令就无法执行Jenkins 安装目录中的脚本 。
使用 /etc/init.d/jenkins 脚本,可以执行以下操作:
操作 | 命令 |
---|---|
启动 Jenkins 服务 | sudo /etc/init.d/jenkins start |
停止 Jenkins 服务 | sudo /etc/init.d/jenkins stop |
重启 Jenkins 服务 | sudo /etc/init.d/jenkins restart |
检查 Jenkins 服务的 状态 | sudo /etc/init.d/jenkins status |
强制重新加载 Jenkins 服务配置 | sudo /etc/init.d/jenkins force-reload |