1. 程式人生 > >設置Django生產環境系統重啟後的自動啟動項

設置Django生產環境系統重啟後的自動啟動項

系統默認 查看 usr cal 命令 after get chmod fig

前面,作者已經介紹了把Django部署到生產環境中的主要方法,現在我們來看一下如何設置項目開機啟動。

在把Django項目部署到生產環境中時,我們前面使用安裝包和源碼安裝了Nginx、uwsgi、redis等,這些應用安裝後,不會使用系統默認服務一樣來快速啟停服務,需要到對應的安裝目錄下才能啟動應用。如果服務因為某些原因重啟,上述應用不能自動啟用,實際生產環境中後果將是一場悲劇。

通過本篇教程,您將了解到上述應用開機自動啟動的方法。

一、將Nginx設為系統服務,且開機啟動

目標:使用systemd服務文件以.server結尾的方式操作應用的啟、停和開機啟動方式,如

systemctl start/restart/enable/stop/disable nginx.service

那就需要進行如下操作:

1、在系統服務目錄裏創建並編輯nginx.service文件

vim /lib/systemd/system/nginx.service
 1 [Unit]
 2 Description=nginx
 3 After=network.target
 4 
 5 [Service]
 6 Type=forking
 7 ExecStart=/usr/local/nginx/sbin/nginx
 8 ExecReload=/usr/local/nginx/sbin/nginx -s reload
 9 ExecStop=/usr/local/nginx/sbin/nginx -s quit
10 PrivateTmp=true
11 12 [Install] 13 WantedBy=multi-user.target

[Unit]:服務的說明
Description:描述服務
After:描述服務類別
[Service]服務運行參數的設置
Type=forking是後臺運行的形式
ExecStart為服務的具體運行命令
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務分配獨立的臨時空間
註意:[Service]的啟動、重啟、停止命令全部要求使用絕對路徑
[Install]運行級別下服務安裝的相關設置,可設置為多用戶,即系統運行級別為3

保存退出。

2、設置開機啟動

systemctl enable nginx.service

3、其他命令

systemctl [操作命令] nginx.service

操作命令:

start,啟動服務

disable,停止自啟

status,查看服務狀態

restart,重新啟動服務

二、通過shell腳本,設置開機自動啟動Django的uwsgi服務

1、切換到/etc/init.d/ (註:目錄位置不要寫錯)

2、制作sh腳本 vim start_mysite.sh

1 #!/bin/sh
2 #add for chkconfig
3 #chkconfig: 2345 70 30
4 #description: the description of the shell   #關於腳本的簡短描述
5 #processname: andyStart      #第一個進程名,後邊設置自啟動的時候會用到
6 
7 #下面要啟動服務的命令
8 uwsgi -x /data/wwwroot/mysite/mysite.xml;   #uwsgi .xml配置文件的具體位置

保存退出

說明:

2345是指腳本的運行級別,即在2345這4種模式下都可以運行,234都是文本界面,5就是圖形界面X

70是指腳本將來的啟動順序號,如果別的程序的啟動順序號比70小(比如44、45),則腳本需要等這些程序都啟動以後才啟動。

30是指系統關閉時,腳本的停止順序號。

3、linux 下shell腳本執行多個命令的方法

(1)每個命令之間用;隔開

說明:各命令的執行給果,不會影響其它命令的執行。換句話說,各個命令都會執行,但不保證每個命令都執行成功。

(2)每個命令之間用&&隔開

說明:若前面的命令執行成功,才會去執行後面的命令。這樣可以保證所有的命令執行完畢後,執行過程都是成功的。

(3)每個命令之間用||隔開

說明:||是或的意思,只有前面的命令執行失敗後才去執行下一條命令,直到執行成功一條命令為止。

4、給腳本加上可執行權限:chmod +x andy.sh

5、利用chkconfig命令將腳本設置為自啟動:chkconfig --add andy.sh

三、設置redis開機啟動

前文已經介紹了如何安裝redis,並且演示了使用systemd配置.service文件進行開機啟動的方法。(繼續閱讀本文的前提是您已經閱讀了《centos7 安裝redis 開機啟動》,如果您已經配置了redis開機啟動服務,也可略過後面的內容)

這裏我們介紹另外一種設置redis開機啟動的方法,即使用shell腳本配置redis開機啟動。

編輯上一步生成的start_mysite.sh腳本

vim /etc/init.d/start_mysite.sh

在最後加上一條配置命令:

/usr/local/redis/redis-server;

四、最後,重啟操作系統,檢驗上述配置是否成功!

設置Django生產環境系統重啟後的自動啟動項