/etc/init.d 目錄,我們把shell腳本放在這個目錄下來作為啟動腳本
都是用來放服務腳本的,當Linux啟動時,會尋找這些目錄中的服務腳本,並根據腳本的run level確定不同的啟動級別。
在制作服務腳本的過程中,使用了Linux的兩個版本,CentOS和Ubuntu,需要在兩個版本中都可以開機啟動服務。但Ubuntu沒有 /etc/rc.d/init.d這個目錄,所以,為了保持同一種服務在CentOS和Ubuntu使用的統一性,將服務腳本(注:服務腳本在兩個不同版本中是不同的)都放在 /etc/init.d 目錄下,最終達到的效果是相同的。
編寫一個自定義開機啟動模版,開機自動啟動nginx服務(根據進程是否存在來判斷)
編寫一個 nginx 文件 存放在 /etc/init.d 目錄下
#!/bin/bash #chkconfig:2345 80 05 --指定在哪幾個級別執行,0一般指關機,6指的是重啟,其他為正常啟動。80為啟動的優先級,05為關閉的優先級別 RETVAL=0 PROCESS=/usr/local/nginx-1.8.0/sbin/nginx #啟動進程的命令 NAME=nginx #進程名稱 start(){ #啟動服務的入口函數 ID=`ps -ef | grep "$NAME" | grep -v "grep" | awk '{print $2}'` #獲取進程 端口 if [ ! $ID ]; then #判斷進程是否 啟動 echo "start $NAME ... " $PROCESS #如果沒有啟動 則啟動 echo "start $NAME service sucess !!!" else echo "$NAME is running..." fi } stop(){ #關閉服務的入口函數 ID=`ps -ef | grep "nginx" | grep -v "grep" | awk '{print $2}'` for i in $ID #循環 do echo "$NAME Kill the $1 process [ $i ]" kill -9 $i #殺死進程 done echo "stop $NAME service sucess !!!" } #使用case選擇 case $1 in start) start ;; stop) stop ;; restart) stop start ;; *) echo "error choice ! please input start or stop";; esac exit $RETVA
然后就 添加nginx到service服務
#修改權限 chmod 755 /etc/init.d/nginx #添加 nginx服務 chkconfig --add nginx #添加開機自動啟動服務 chkconfig nginx on
#以下就可以允許這些服務 service nginx start service nginx stop service nginx reload
一個簡單的 開機啟動服務就完成了,這個模版供大家參考
謝謝
