如何优雅的把jenkins加到系统服务(批处理或java包程序同样适用)

        像jenkins这类程序,下载war包后直接使用的应用经常会碰到,类似windows平台的绿色软件,很方便,但对于日常管理或运维不方便。

以下方式是出于方便运维目的,将其加入到linux系统服务项方法:如下图

如何优雅的把jenkins加到系统服务(批处理或java包程序同样适用)_第1张图片

1:建立启动、停止两个脚本(具体参数请自动修改,主要是路径,重启restart则先执行stop再start;)

jenkins_start.sh #启动脚本jenkins_start.sh

nohup java -Dhudson.util.ProcessTree.disable=true -jar  /你的程序存放路径/jenkins.war &

jenkins_stop.sh #停止脚本jenkins_start.sh

#!/bin/sh
#这里使用了ps获得进程号,jps命令在一些系统无法显示包名只显示java
#如果没用使用jenkins名字,则要修改第一行中appName值为需要杀的进程name
appName="jenkins"
echo "Try to stop running aplication [${appName}]" 
ids=`ps aux|grep ${appName}|awk '{print $2}'`
for id in ${ids}
do
	echo "Stop application on pid ${id}..."
	kill -9 ${id}
done
sleep 3s
echo "Stop application successfully"

2、脚本赋执行权限并放入bin环境路径

chmod +x jenkins_*.sh
cp jenkins_*.sh /usr/local/bin

PS:当前系统的bin环境路径可以用命令“echo $PATH”获取

3、建立服务文件(start\stop\restart三个服务)

      在目录/etc/init.d/下建立文件:jenkins,写入以下内容

# Short-Description: Start jenkins at boot time
# description:       Enable service provided by jenkins.
### END INIT INFO
start()
{
    #调用启动脚本
    "jenkins_start.sh"
    exit 0;
}

stop()
{
    #调用停止脚本
    "jenkins_stop.sh"
}

case "$1" in
start)
    start
    ;;

stop)
    stop
    ;;

restart)
    stop
    start
    ;;

*)
    echo "Usage: $0 {start|stop|restart}"
    exit 0
    ;;

esac
exit 0

4、配置系统,让系统能识别到jenkins服务,以下在shell直接执行:

# 添加到系统服务
chkconfig --add /etc/init.d/jenkins

# 设置开机自启
chkconfig jenkins on

# 设置开机自启关闭
chkconfig jenkins off

#重新加载系统服务
systemctl daemon-reload

# 查看jenkins服务是否已在服务项中
systemctl list-unit-files | grep jenkins

结果:

 5、调用方法 (以下是centos7为例)

#启动
systemctl start jenkins

#停止
systemctl stop jenkins

#重启
systemctl restart jenkins

#查看状态
systemctl status jenkins

你可能感兴趣的:(自动化运维,jenkins,jar,运维)