jenkins服務腳本

需求:每次開啓服務,和關閉服務都要敲一段命令,太麻煩了,於是嘗試製作成系統(centos)服務,開機自動啓動服務,service jenkins start ,service jenkins stop,service jenkins restart多爽

#!/bin/bash
#
# chkconfig: 2345 89 11
# description: jenkins service
#其實46行以上的代碼只不過是寫給46行之後調用,兩個分號前面的函數就是你自定義service start,stop,restart 觸發的代碼
#start,stop邏輯一般是調用你的程序關閉服務的命令,不要傻傻的自己還去寫。。
#restart一般是直接調用stop,start
#reload() -----> 告訴程序重讀配置文件,改變程序的運行狀態
#/etc/rc.d/init.d/  系統服務腳本目錄,一個服務會有一個腳本,ls可以看到其實有很多寫好的服務腳本,可以打開某一個看看,別人的怎麼寫的,參考借鑑下
#/var/lock/subsys   服務鎖定目錄(存在則表示已經創建了實例pid文件)主要是爲了防止重複啓動


SERVICE_NAME=jenkins
SERVICE_ROOT=/home/jenkins
PIDFILE=/var/run/${SERVICE_NAME}/${SERVICE_NAME}.pid
LOCKFILE=/var/lock/subsys/${SERVICE_NAME}


start() {
	echo "Starting ${SERVICE_NAME} ..."
	start_something	
	touch ${LOCKFILE}
	echo "${SERVICE_NAME} is started"
}

stop() {
	echo "Stopping ${SERVICE_NAME} ..."
	stop_something
	rm -f ${lockfile} ${pidfile}
}

start_something(){
	`nohup ${SERVICE_ROOT}/start_jenkins.sh > jenkins.log 2>&1 &`
}

stop_something(){
	`java -jar ${SERVICE_ROOT}/jenkins_home/war/WEB-INF/jenkins-cli.jar -s http://localhost:8000 shutdown --username admin --password a87905338`
}

restart(){
	stop
	start
}

# See how we were called.
case "$1" in
  start)
start        
;;
  stop)
stop            
;;
  restart|force-reload)
stop                
start
;;
  *)
echo $"Usage: $0 {start|stop|restart|force-reload}"
exit 2
esac




要注意的是, 文件的格式要是 unix. 可以通過 VI 命令 :set ff? 查看.如果不是, 執行的時候會報錯:

/bin/bash^M: bad interpreter


:set fileformat=unix --> 設置編碼爲unix(還可以設置爲 doc)


VI 中保存

將該腳本設置爲可執行:

chmod +x servicefile



2.添加系統服務

chkconfig --add jenkins


3.系統服務自啓動

chkconfig --level 345 jenkins on


4.測試

service jenkins start

service jenkins stop

shutdown -r now

每執行完一個測試命令都訪問頁面和看看進程是否正常(ps -ef | grep jenkins)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章