像jenkins这类程序,下载war包后直接使用的应用经常会碰到,类似windows平台的绿色软件,很方便,但对于日常管理或运维不方便。
以下方式是出于方便运维目的,将其加入到linux系统服务项方法:如下图
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