1 创建jenkins.sh脚本
mkdir -p /home/jenkins/.shell
cd /home/jenkins/.shell
1.1 编写jenkins.sh脚本
#!/bin/bash
#author 农耕园
#此处声明`JENKINS_HOME`变量
#原因在开机自启动是,该文件访问不到环境变量中`JENKINS_HOME`变量
export JENKINS_HOME=/root/.jenkins
#其他环境变量(如过Jenkins服务还有其他的环境配置一并添加在此处,很重要。)
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/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/jdk/bin/java -jar /home/soft/jenkins.war --httpPort=9090 > /home/soft/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
1.2 给脚本添加运行权限
chmod +x jenkins.sh
2 创建 jenkins.service文件
cd /lib/systemd/system
2.1 编写jenkins.service
[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
3 刷新服务配置
systemctl daemon-reload
4启动Jenkins服务
systemctl start jenkins.service
5 查看Jenkins服务状态
systemctl status jenkins.service
6 将Jenkins服务设置为开机启动
systemctl enable jenkins.service
7 查看设置开机启动的服务列表
systemctl list-units --type=service | grep jenkins
8 验证
执行reboot
9 遇到问题
9.1 Failed at step EXEC spawning /home/jenkins/.shell/jenkins.sh: Exec format error
解决方法:
经过排查是启动脚本写的有问题,修改之后,便可以。
9.2 怎么在ubuntu中查找jdk的安装路径
解决方法:
9.2.1 第一种方式
which java
9.2.2 第二种方式
echo $JAVA_HOME
9.2.3 第三种方式
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java
9.2.4 配置环境java环境变量
第一步:打开 /etc/environment 文件:
vim /etc/environment
第二步:在文件末尾添加以下行:
JAVA_HOME=“/usr/lib/jvm/java-11-openjdk-amd64”
第三步:使/etc/environment生效
source /etc/environment
第四步:验证 JAVA_HOME
echo $JAVA_HOME