Git+Gerrit+Jenkins 持续集成系统安装与升级
技术组
文档修订记录
日期 |
修订内容 |
修订人 |
版本 |
备注 |
2017-12-20 |
首次编写 |
陈超允 |
V1.0 |
初始化 |
#登陆203
#备份gerrit目录,代码库在GERRIT_HOME/Review/git下
- [[email protected] home]# cd /home/
- [[email protected] home]# tar -zcvf gerrit.tar.gz gerrit/
- [[email protected] dev0]# mkdir -p /home/dev0/
- [[email protected] dev0]# mv gerrit.tar.gz /home/dev0/
- [[email protected] dev0]# mysqldump –ugerrituser -p gerritdb>/home/dev0/reviewdb.sql
- [[email protected] dev0]# ls
- gerrit.tar.gz reviewdb.sql
#确定JENKINS_HOME=/home/.jenkins
#由于以往jenkins开发构建时,保留所有构建记录,不能立即打包
#两种做法,一是删除以往构建,二是打包时跳过历史构建目录,这里选择删除以往构建
- [[email protected] jobs]# cd /home/.jenkins/jobs/
- [[email protected] jobs]# rm -rf ./*/builds/* ./*/workspace/* ./*/workspace/.git*
#修改jenkins项目构建配置为
- [[email protected] home]# tar -zcvf jenkins-home.tar.gz .jenkins/
- [[email protected] home]# mv jenkins-home.tar.gz dev0/
- [[email protected] home]# cd dev0/
- [[email protected] dev0]# ls
- gerrit.tar.gz jenkins-home.tar.gz reviewdb.sql
#登陆192.168.1.111
- [[email protected] mvn]# pwd
- /u01/mw/mvn
- [[email protected] mvn]# ls
- nexus nexus-2.11.2-03 sonatype-work
- [[email protected] mvn]# tar -zcvf nexus-2.11.2-03.tar.gz nexus-2.11.2-03/
- [[email protected] mvn]# tar -zcvf sonatype-work.tar.gz sonatype-work/
#传送
- [[email protected] mvn]# scp nexus-2.11.2-03.tar.gz sonatype-work.tar.gz ccy001:/u01/soft
- [[email protected] soft]# mkdir -p /u01/jdk/
- [[email protected] soft]# cp /u01/soft/jdk1.8.0_131.tar.gz /u01/jdk/
- [[email protected] soft]# cd /u01/jdk/
- [[email protected] jdk]# ls
- jdk1.8.0_131.tar.gz
- [[email protected] jdk]# tar -zxvf jdk1.8.0_131.tar.gz
- [[email protected] jdk]# rm -rf jdk1.8.0_131.tar.gz
#配置环境变量,添加如下内容
- [[email protected] u01]# vim /etc/profile
- export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
- export JAVA_HOME=/u01/jdk/jdk1.8.0_131
- export JAVA_BIN=$JAVA_HOME/bin
- export PATH=$PATH:$JAVA_HOME/bin
- export MAVEN_HOME=/u01/mvn/apache-maven-3.3.9
- export GIT_HOME=/usr/local/git/bin
- export GIT_CORE=/usr/local/git/libexec/git-core
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- export JAVA_HOME JAVA_BIN PATH CLASSPATH
- export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:$JAVA_HOME/bin:/root/bin
- export PATH=$PATH:$GIT_HOME:$MAVEN_HOME/bin:$GIT_CORE
- [[email protected] u01]# source /etc/profile
- [[email protected] u01]# java -version
- Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
- java version "1.8.0_131"
#创建软链接
- [[email protected] u01]# ln -s /u01/jdk/jdk1.8.0_131/bin/java /usr/bin/java
- [[email protected] u01]# mkdir -p /u01/mvn
- [[email protected] u01]# cp /u01/soft/apache-maven-3.3.9.tar.gz /u01/mvn/
- [[email protected] u01]# cd /u01/mvn/
- [[email protected] mvn]# ls
- apache-maven-3.3.9.tar.gz
- [[email protected] mvn]# tar -zxvf apache-maven-3.3.9.tar.gz
#修改setting为云环境上私服地址,替换192.168.1.111为dev0
- [[email protected] conf]# cd /u01/mvn/apache-maven-3.3.9/conf/
- [[email protected] conf]# vim settings.xml
#vim执行替换
- :g/192.168.1.111/s//dev0/g
- [[email protected] conf]# mvn -v
- Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
- Apache Maven 3.3.9…
#创建软链接
- [[email protected] u01]# ln -s /u01/mvn/apache-maven-3.3.9/bin/mvn /usr/bin/mvn
- [[email protected] soft]# unzip v2.3.0.zip
- [[email protected] soft]# cd git-2.3.0/
#安装git依赖包
- [[email protected] git-2.3.0]# yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
- [[email protected] git-2.3.0]# make prefix=/usr/local/git all
- [[email protected] git-2.3.0]# make prefix=/usr/local/git install
- [[email protected] git-2.3.0]# git --version
- git version 2.3.0
#创建软链接
- [[email protected] git-2.3.0]# ln -s /usr/local/git/bin/git /usr/bin/git
- [[email protected] mvn]# cd /u01/soft/
- [[email protected] soft]# wgethttp://nginx.org/download/nginx-1.12.2.tar.gz
- [[email protected] soft]# tar -zxvf nginx-1.12.2.tar.gz
- [[email protected] soft]# cd nginx-1.12.2
#安装依赖包
- [[email protected] soft]#yum -y install openssl openssl-devel
- [[email protected] soft]#yum -y install pcre* zlib*
- [[email protected] soft]#yum install -y gcc gcc-c++
- [[email protected] soft]#yum install GeoIP
- [[email protected] soft]#./configure --with-stream
- [[email protected] soft]#make && make install
- [[email protected] soft]#./configure --with-http_stub_status_module --with-stream --with-http_geoip_module --with-http_ssl_module --with-http_realip_module
- [[email protected] soft]#make && make install
#安装完的目录/usr/local/nginx
#创建启停重启脚本
- [[email protected] ~]# cd /usr/local/nginx/
- [[email protected] nginx]# cat startNginx.sh
- cd /usr/local/nginx
- /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- [[email protected] nginx]# cat stopNginx.sh
- pkill -9 nginx
- [[email protected] nginx]# cat restartNginx.sh
- cd /usr/local/nginx/sbin/
- ./nginx -s reload
- [[email protected] nginx]# cat /etc/init.d/nginx
- #!/bin/sh
- #
- # Startup script for the nginx Continuous Integration server
- # (via Jakarta Tomcat Java Servlets and JSP server)
- #
- # chkconfig: - 85 15
- # description: Jakarta nginx Java Servlets and JSP server
- # processname: nginx
- # pidfile: /u01/app/nginx/.pid
- export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
- EXCUTE_USER=root
- APP_NAME=nginx
- LOCKFILE=/var/lock/$APP_NAME
- APP_HOME=/usr/local/nginx
- case "$1" in
- start)
- echo -n "Starting $APP_NAME: "
- su -p -s /bin/sh $EXCUTE_USER -c "$APP_HOME/start*.sh"
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && touch $LOCKFILE
- ;;
- stop)
- echo -n "Shutting down $APP_NAME: "
- su -p -s /bin/sh $EXCUTE_USER -c "$APP_HOME/stop*.sh"
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm -f $LOCKFILE
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- condrestart)
- [ -e $LOCKFILE ] && $0 restart
- ;;
- status)
- su -p -s /bin/sh $EXCUTE_USER -c "ps -ef |grep $APP_NAME"
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|status}"
- exit 1
- esac
- exit 0
#设置服务
- [[email protected] nginx]#chmod a+x /etc/init.d/nginx
- [[email protected] nginx]#chkconfig nginx on
- [[email protected] nginx]# chkconfig --list |grep nginx
- nginx 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
- [[email protected] nginx]#service nginx status
#nginx配置后续再做
- [[email protected] git-2.3.0]# yum -y install gitweb
- [[email protected] git-2.3.0]#yum -y install perl-Time-HiRes
- [[email protected] git-2.3.0]#yum -y install perl-CPAN
- [[email protected] git-2.3.0]#yum -y install perl-CGI
#配置gitweb 展示的那些代码库的根目录
- [[email protected] git-2.3.0]# vim /etc/gitweb.conf
- $projectroot = "/u01/gerrit/Review/git"
#创建软链接
- [[email protected] gerrit]# mkdir -p /usr/lib/cgi-bin/
- [[email protected] gerrit]# ln -s /usr/local/git/share/gitweb/gitweb.cgi /usr/lib/cgi-bin/gitweb.cgi
- [[email protected] soft]# mkdir -p /u01/mysql
- [[email protected] soft]# cd /u01/mysql/
- [[email protected] mysql]# cp /u01/soft/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz ./
- [[email protected] mysql]# tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
- [[email protected] mysql]# rm -rf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
- [[email protected] mysql]# cd mysql-5.7.17-linux-glibc2.5-x86_64/
- [[email protected] mysql-5.7.17-linux-glibc2.5-x86_64]# mkdir /u01/mysql/logs /u01/mysql/data
#先将配置好的my.conf文件传至服务器
#直接用root用户装,修改user=root
- [[email protected] mysql]# vim /etc/my.cnf
- user=root
- [[email protected] mysql]# mysql-5.7.17-linux-glibc2.5-x86_64/bin/mysqld --initialize --user=root --basedir=/u01/mysql --datadir=/u01/mysql/data --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp
- #此处需要注意记录生成的临时密码,如:[email protected]:jh7n;CSoXbgh
- [[email protected] mysql]# mysql-5.7.17-linux-glibc2.5-x86_64/bin/mysql_ssl_rsa_setup --datadir=/u01/mysql/data/
#查看默认密码
- [[email protected] mysql]#cat /u01/mysql/logs/mysql-error.log
- [[email protected] mysql-5.7.17-linux-glibc2.5-x86_64]# cp support-files/mysql.server /etc/init.d/mysql
- [[email protected] mysql-5.7.17-linux-glibc2.5-x86_64]# chkconfig --add mysql
- [[email protected] mysql-5.7.17-linux-glibc2.5-x86_64]# chkconfig mysql on
- [[email protected] mysql-5.7.17-linux-glibc2.5-x86_64]# chkconfig --list | grep mysql
- mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- [[email protected] mysql]# vim /etc/init.d/mysql
- basedir=/u01/mysql/mysql-5.7.17-linux-glibc2.5-x86_64
- datadir=/u01/mysql/data
#配置环境变量
- [[email protected] mysql]# vim /etc/profile
- export MYSQL_HOME=/u01/mysql/mysql-5.7.17-linux-glibc2.5-x86_64/bin
#创建软链接
- [[email protected] mysql]# ln -s /u01/mysql/mysql-5.7.17-linux-glibc2.5-x86_64/bin/mysqld /usr/bin/mysqld
#登陆mysql
- [[email protected] mysql]# mysql --user=root -p
- mysql> SET PASSWORD=PASSWORD('password');
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
#添加远程访问权限
- mysql> use mysql;
- Reading table information for completion of table and column names
- You can turn off this feature to get a quicker startup with -A
- Database changed
- mysql> update user set host = '%' where user = 'root';
- Query OK, 1 row affected (0.01 sec)
#重启
- [[email protected] mysql]# service mysql restart
- mysql>CREATE DATABASE IF NOT EXISTS reviewdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- mysql> use reviewdb;
- mysql> source /u01/soft/dev0/reviewdb.sql
#配置mysql反向代理流
- [[email protected] nginx]# pwd
- /usr/local/nginx
- [[email protected] nginx]# vim conf/nginx.conf
- #gerrit-mysql
- stream {
- server {
- listen 3300;
- proxy_pass dev0:3306;
- proxy_buffer_size 512k;
- allow all;
- }
- }
- #重启nginx
- [[email protected] nginx]# sh restartNginx.sh
#用navicat远程连接测试是否能连上
#解压从203备份的gerrit tar包
- [[email protected] u01]# cp soft/dev0/gerrit.tar.gz ./
- [[email protected] u01]# tar -zxvf gerrit.tar.gz
#修改配置
- [[email protected] logs]# cd /u01/gerrit/Review/
- [[email protected] Review]# cat etc/gerrit.config
- [gerrit]
- basePath = git
- canonicalWebUrl = http://39.108.0.229/gerrit
- [database]
- type = mysql
- hostname = localhost
- database = reviewdb
- username = root
- [index]
- type = LUCENE
- [auth]
- type = HTTP
- [sendemail]
- smtpServer = smtp.qq.com
- smtpServerPort = 465
- smtpEncryption = ssl
- smtpUser = 474849750@qq.com
- smtpPass = ybvnzfujouqocaaa
- sslVerify = false
- from=CodeReview<474849750@QQ.COM>
- [gitweb]
- cgi = /usr/local/git/share/gitweb/gitweb.cgi
- [container]
- user = root
- javaHome = /u01/jdk/jdk1.8.0_131/jre
- [sshd]
- listenAddress = *:29418
- [httpd]
- listenUrl = http://*:8080/gerrit
- [cache]
- directory = cache
#重启失败,重新更新下索引
- [[email protected] gerrit]# cd Review/bin/
- [[email protected] bin]# java -jar gerrit.war reindex -d /u01/gerrit/Review
#安装gerrit为系统服务,开机自启
- [[email protected] gerrit]# vim /etc/init.d/gerrit
- #!/bin/bash
- #chkconfig:2345 20 90
- #description:jenkins
- #processname:jenkins
- export JAVA_HOME=/u01/jdk/jdk1.8.0_131
- case $1 in
- start) su root /u01/gerrit/start-gerrit.sh;;
- stop) su root /u01/gerrit/stop-gerrit.sh;;
- restart) su root /u01/gerrit/restart-gerrit.sh;;
- status)su -p -s /bin/sh root -c "ps -ef |grep gerrit";;
- *) echo "require start|stop|restart|status" ;;
- esac
- [[email protected] jenkins]# chmod a+x /etc/init.d/gerrit
- [[email protected] gerrit]# chkconfig gerrit on
- [[email protected] gerrit]# chkconfig --list |grep gerrit
- gerrit 0:off 1:off 2:on 3:on 4:on 5:on 6:off
#上传http认证文件
- [[email protected] gerrit]# pwd
- /usr/local/nginx/gerrit
- [[email protected] gerrit]# cp /u01/soft/dev0/gerrit2.passwd ./
#配置gerrit server
- [[email protected] nginx]# vim conf/nginx.conf
- location /gerrit{
- #root /home/gerrit/Review;
- proxy_pass http://dev0:8080;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- auth_basic "Gerrit Code Review";
- auth_basic_user_file /usr/local/nginx/gerrit/gerrit2.passwd;
- }
- #另外还需配置gerrit端口29418的代理
- #stream tcp
- stream {
- #gerrit-mysql
- server {
- listen 3300;
- proxy_pass dev0:3306;
- proxy_buffer_size 512k;
- allow all;
- }
- #gerrit-ssh
- server{
- listen 29418;
- proxy_buffer_size 512k;
- proxy_pass dev0:29418;
- allow all;
- }
- }
#最后配置腾讯云增加入站规则TCP:29418
在单独项目的ACL里为项目的用户组增加了对refs/meta/config的read权限
#解压jenkins tar包
#修改启停脚本,改变jenkins家目录
- [[email protected] jenkins]# cat start-jenkins.sh
- #!/bin/bash
- export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
- export JENKINS_HOME=/u01/jenkins/.jenkins
- cd /u01/jenkins
- nohup /u01/jdk/jdk1.8.0_131/bin/java -Dfile.encoding=utf-8 -Dhudson.util.ProcessTree.disable=true -jar jenkins.war --httpPort=8081 >> system_out.log 2>&1 &
- echo $!> /u01/jenkins/.pid
- echo "===jenkins started!"
#解压jenkins配置tar包
- [[email protected] jenkins]# tar -zxvf jenkins-home.tar.gz
#跟上述做法相同,将jenkins作为系统服务
- [[email protected] jenkins]# vim /etc/init.d/Jenkins
- #!/bin/sh
- #
- # Startup script for the nginx Continuous Integration server
- #
- # chkconfig: - 85 15
- # description: Jakarta nginx Java Servlets and JSP server
- # processname: tomcat
- # pidfile: /var/run/nginx.pid
- JENKINS_USER=root
- LOCKFILE=/var/lock/jenkins
- APP_NAME=jenkins
- JENKINS_HOME=/u01/jenkins
- case "$1" in
- start)
- echo -n "Starting $APP_NAME: "
- su -p -s /bin/sh $JENKINS_USER -c "$JENKINS_HOME/start-jenkins.sh"
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && touch $LOCKFILE
- ;;
- stop)
- echo -n "Shutting down $APP_NAME: "
- su -p -s /bin/sh $JENKINS_USER -c "$JENKINS_HOME/stop-jenkins.sh"
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm -f $LOCKFILE
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- condrestart)
- [ -e $LOCKFILE ] && $0 restart
- ;;
- status)
- su -p -s /bin/sh $JENKINS_USER -c "ps -ef |grep $APP_NAME"
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|status}"
- exit 1
- esac
- exit 0
- [[email protected] jenkins]# chmod a+x /etc/init.d/jenkins
- [[email protected] jenkins]# chkconfig jenkins on
- [[email protected] gerrit]# chkconfig --list |grep Jenkins
- [[email protected] nginx]# cat conf/nginx.conf
- #端口8081
- server {
- listen 80;
- server_name localhost;
- location /{
- client_max_body_size 30m;
- client_body_buffer_size 128k;
- proxy_buffer_size 26400k;
- proxy_buffers 32 25000k;
- proxy_busy_buffers_size 33280k;
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass http://dev0:8081;
- access_log logs/jenkins_access.log;
- }
- location /gerrit-trigger{
- client_max_body_size 30m;
- client_body_buffer_size 128k;
- proxy_buffer_size 26400k;
- proxy_buffers 32 25000k;
- proxy_busy_buffers_size 33280k;
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass http://dev0:8081/gerrit-trigger;
- access_log logs/jenkins_access.log;
- }
- }
#登陆jenkins更改jenkins地址
Jenkins URL : http://123.206.68.97:8081
系统设置àgerrit triggeràgerritServeràGerrit Connection Setting
因为gerrit与jenkins装在同一台机子上,HostName:127.0.0.1; Frontend URL:http://127.0.0.1:8080/
配置公网ip(pelican)从节点,用于发布上线包脚本
pelican配置dev0免密登陆认证
节点配置
- job上绑定slave-pelican
(1)改为本地10.0.0.16,修改所有构建项目地址
Repository URL:ssh://[email protected]:29418/Weidi_ccbc
(2)用jekins用户登陆gerrit,添加jenkins所在机器(dev0)的ssh-key
原203机子gerrit-2.8.1最高升级至gerrit-2.11.10,再高的版本则导致eclipse gerrit插件不能使用,gerrit-web也不能使用gitweb。
上传gerrit-2.9.war、gerrit-2.10.war、gerrit-2.11.10.war至dev0
[[email protected] dev0]# scp gerrit-2.10.war gerrit-2.9.war gerrit-2.11.10.war dev0:/u01/soft/
依次安装2.9-->2.10-->2.11
- [[email protected] soft]# java -jar gerrit-2.9.war init -d /u01/gerrit/Review/
- [[email protected] soft]# java -jar gerrit-2.10.war init -d /u01/gerrit/Review/
- [[email protected] soft]# java -jar gerrit-2.11.10.war init -d /u01/gerrit/Review/
#安装提示
- #Location of Git repositories [git]: /home/review_site/git/
- #Database server type [h2]: mysql
- #Database name [reviewdb]: gerritdb
- #Database username [root]: gerritusr
- #Authentication method [OPENID/?]: http
- #Behind reverse proxy [Y/n]? y
- #Canonical URL [http://ccy001/]:http://39.108.0.229/gerrit/
增加commit size列,有红、黄、绿三种颜色
增加GitWeb操作界面
可在gerrit的一次commit上,在浏览器上增加或修改文件
进入代码review界面,去除换行符”\r”
Review时,可选择一段代码块,按下c,添加draft,选中代码块高亮
WindowsàpreferresàMavenàUser settingà
WindowàShow ViewàOtheràMylynàTeam repositoryà
#查看gerrit数据库编码
mysql> show variables like '%character%';
| character_set_server | latin1 |
首先保证服务器的系统编码是支持中文的
[[email protected] ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
#永久性修改mysql
[[email protected] ~]# vim /etc/my.cnf
.......
[mysqld]
......
character_set_server = utf8 【添加这一行内容】
#重启
[[email protected] ~]# service mysql restart
- [[email protected] gerrit]# vim Review/etc/gerrit.config
- [sendemail]
- smtpServer = smtp.qq.com
- smtpServerPort = 465
- smtpEncryption = ssl
- smtpUser = 474849750@qq.com
- smtpPass = ybvnzfujouqocaaa
- sslVerify = false
- from[email protected]
原因:gerrit nginx配置代理时,去掉反斜杠/
解决方案:
管理员登录gerritàProjectsàListàAll-ProjectsàProjectsàAccess
àGlobal CapabilitiesàStream Events点击Non-Interactive Usersà
à添加jenkins用户到‘Non-Interactive Users’组
- yum -y install perl-Time-HiRes
- yum -y install perl-CPAN
- yum -y install perl-CGI
#解决的办法就是到reviewdb数据库里,先从patch_sets表中找出change_id是对应commitid的记录,确定无误后
我们要做的是将其关闭,并把状态置为Abandon。(友情提醒,涉及重要业务,注意备份数据库)
mysql> update changes set open='N',status='A' where change_id=1974;
源码管理à选择git,Refspec:refs/changes/*:refs/changes/*Branch Specifier (blank for 'any'):$GERRIT_REFSPEC
#把要用的命令创建一个快捷方式到/usr/bin,如
- ln -s /usr/local/git/bin/git /usr/bin/git
- ln -s /u01/mvn/apache-maven-3.3.9/bin/mvn /usr/bin/mvn
- ln -s /u01/jdk/jdk1.8.0_131/bin/java /usr/share/java
- ln -s /u01/mvn/apache-maven-3.3.9/bin/mvn /usr/bin/mvn
- ln -s /usr/local/git/bin/git /usr/bin/git
原因是新安装的gerrit jenkins用户没有配置主机的ssh key,登陆jenkins用户到gerrit,添加SSH Public key 就好了
解决办法:
启动Jenkins的时候加上-Dhudson.util.ProcessTree.disable=true,也就是java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war
临时改变BUILD_ID值,使得jenkins不会找到并结束掉run.sh启动的后台进程,
OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe
./run.sh restart
#改回原来的BUILD_ID值
BUILD_ID=$OLD_BUILD_ID
echo $BUILD_ID
解决办法:在window上用git bash执行
vim ~/.ssh/config