(三)设置Jenkins开机自动启动

编写Jenkins启动、停止脚本

个人习惯,这里我将Jenkins的启动、停止脚本放在了jenkin.war存放的文件夹位置的隐藏目录

mkdir -p /home/jenkins/.shell
cd /home/jenkins/.shell
vi jenkins.sh
# 赋予jenkin.sh可运行权限
chmod +x jenkin.sh

将以下内容粘贴在/home/jenkins/.shell/jenkins.sh文件中。

#!/bin/bash
#author jiacs

#此处声明`JENKINS_HOME`变量
#在文章《(二)修改Jenkins工作空间》中已修改Jenkins工作目录
#https://blog.csdn.net/jiachangsen/article/details/120708478
#原因在开机自启动是,该文件访问不到环境变量中`JENKINS_HOME`变量

export JENKINS_HOME=/home/.jenkins
#其他环境变量(如过Jenkins服务还有其他的环境配置一并添加在此处,很重要。)
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export JAVA_HOME=/usr/local/java/jdk1.8.0_152
export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$MAVEN_HOME/bin:$JRE_HOME/bin:$PATH:$HOME/bin


pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
 if [ "$1" = "start" ];then
 if [ $pid -gt 0 ];then
 echo 'jenkins is running...'
else
 #java启动服务 配置java安装根路径,和启动war包存的根路径
 nohup /usr/local/java/jdk1.8.0_152/bin/java -jar /home/jenkins/jenkins.war > /home/jenkins/jenkins.log 2>&1 &
 fi
 elif [ "$1" = "stop" ];then
 exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
 echo 'jenkins is stop..'
else
 echo "运行该脚本,请务必传入参数:start 或 stop"
 fi

创建jenkins.service文件

cd /lib/systemd/system
vi jenkins.service

将以下内容复制到jenkins.service文件中,注意ExecStartExecStop对应的脚本路径,如果不一致,请修改

[Unit]
Description=Jenkins
After=network.target
 
[Service]
Type=forking
ExecStart=/home/jenkins/.shell/jenkins.sh start
ExecReload=
ExecStop=/home/jenkins/.shell/jenkins.sh stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

刷新服务配置

systemctl daemon-reload

启动Jenkins服务

systemctl start jenkins.service

查看Jenkins服务状态

systemctl status jenkins.service

在这里插入图片描述

将Jenkins服务设置为开机启动

systemctl enable jenkins.service

查看设置开机启动的服务列表

systemctl list-units --type=service | grep jenkins

在这里插入图片描述

重启服务器测试Jenkins开机自启是否生效

reboot

版权声明:本文为jiachangsen原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。