编写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
文件中,注意ExecStart
、ExecStop
对应的脚本路径,如果不一致,请修改
[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版权协议,转载请附上原文出处链接和本声明。