2分鐘-實現開機nginx開機自啟動指令碼(shell篇)
阿新 • • 發佈:2021-06-25
2分鐘-實現開機nginx開機自啟動指令碼(shell篇)
作者:邱月濤時間: 2021-02-05 08:53:20【摘要】如何快速寫個啟動指令碼,主要通過如下幾部1,邏輯捋順可以在txt檔案中,已虛擬碼的方式,形成體系,羅列順序,然後在一點點補充程式碼通過PID 程序檔案,判斷程式是否執行設定3個模組(開啟,關閉,重新載入)然後在用case語句 去呼叫這個3個模組 實現啟動指令碼功能restart看程序號變化,reload看配置檔案是否生效2,指令碼主體內容[root@DB02]#cat/etc/init.d/ng...
如何快速寫個啟動指令碼,主要通過如下幾部
1,邏輯捋順
-
可以在txt檔案中,已虛擬碼的方式,形成體系,羅列順序,然後在一點點補充程式碼
-
通過PID 程序檔案,判斷程式是否執行
-
設定3個模組(開啟,關閉,重新載入)
-
然後在用case語句 去呼叫這個3個模組 實現啟動指令碼功能
-
restart看程序號變化,reload看配置檔案是否生效
2,指令碼主體內容
[root@DB02]# cat /etc/init.d/nginx
#!/bin/bash
# chkconfig: 2345 32 62 #按照開機啟動模板設定,32序列號 62系統等級
# description: Activates/Deactivates all network interfaces configured to \
[ -f /etc/init.d/functions ] && . /etc/init.d/functions #引用系統函式庫
nginx=/application/nginx/sbin/nginx
Pidfile=/application/nginx/logs/nginx.pid
oldboy(){ RETVAL=$? if [ $RETVAL -eq 0 ];then action "Nginx is $1" /bin/true else action "Nginx is $1" /bin/false fi
}
##no.1 定義啟動模組
Start(){
if [ -f $Pidfile ];then echo "Nginx is running" else $nginx oldboy started
fi return $RETVAL
}
##no.2 定義關閉模組
Stop(){
if [ ! -f $Pidfile ];then echo "nginx in not running" else $nginx -s stop oldboy stoped
fi
}
##no.3 定義重新載入模組
Reload(){
if [ ! -f $Pidfile ];then echo "Cat't open $Pidfile ,no such file or directory"
else $nginx -s reload oldboy reloaed fi
}
case "$1" in start) Start
;; stop) Stop
;; reload) Reload
;; restart) Stop sleep 2 Start
;; *) echo "Usage: sh $0 {start|stop|reload|restart} " exit 1
esac
exit $RETVAL
3,把指令碼放到/etc/init.d/ 下
3.1 檢視服務自啟動列表
[root@DB02 init.d]# chkconfig --list|grep nginx
[root@DB02 init.d]# chkconfig --list|grep mysql
mysqld 0:關閉1:關閉2:啟用3:啟用4:啟用5:啟用6:關閉
3.2 把指令碼寫入到/etc/init.d
[root@DB02 init.d]# cd /etc/init.d/
[root@DB02 init.d]# vi nginx #內容見上面指令碼
3.3 授權指令碼 x執行許可權
[root@DB02 init.d]# chmod +x nginx
[root@DB02 init.d]# ll nginx
-rwxr-xr-x 1 root root 1177 9月 26 15:45 nginx
4,新增開機自啟動
[root@DB02 init.d]# chkconfig nginx on
service nginx does not support chkconfig ##報錯,沒有把nginx檔案,新增到開機自啟動裡面
[root@DB02 rc3.d]# chkconfig --list|grep nginx
nginx 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉
4.1測試
[root@DB02 rc3.d]# /etc/init.d/nginx start
Nginx is running
另外一種,開機自啟動方法,可以把啟動內容放到/etc/rc.local檔案中,主要要使用絕對路徑