CentOS8讓uwsgi開機自動啟動django(無需登錄,無需手動)


baidu了好幾天,折騰了好幾天,終於讓uwsgi能在CentOS8下開機自動啟動Django網站了

 

網上說的:

/etc/init.d/???.sh

chkconfig --add ???.sh

 

這種↑方法,不行!!

沒研究,不知道是不是CentOS8版本原因

 

 

今天看了下Systemd的介紹,終於以.service的方式搞定。

解決方案分兩步:

  1、新建自己的 xxx.service(位置:/etc/systemd/system)

    

[Unit]
Description=uwsgi-xxx-support
After=network.target
Before=nginx.service

[Service]
ExecStart=/usr/sbin/xxx.sh
ExecReload=/bin/kill -HUP ( ps -ep | grep uwsgi)
Type=forking


[Install]
WantedBy=multi-user.target
~                              

注意:: Type 要設置為forking,因為xxx.sh執行完之后是要退出的,繼續運行的是uwsgi進程,默認的simple是啟動不了的,狀態會一直是inactive(dead)

建 好 之 后:$  systemctl enable xxx.service

  2、建自己的xxx.sh腳本(我放在/usr/sbin)

         

#!/bin/sh 
  
venvwrap="virtualenvwrapper.sh"



python38=`/usr/bin/which python3.8`
VIRTUALENVWRAPPER_PYTHON=${python38}

export WORKON_HOME=/root/.virtualenvs

if [ $? -eq 0 ]; then
        venvwrap=`/usr/bin/which $venvwrap`
        source $venvwrap
fi

workon .xxx
source activate
uwsgi --ini /webroot/xxx/uwsgi.ini &
~                                                                                                                                             
~                                                                                                                                             
~                                                                                                                                             
~          

     要設置 VIRTUALENVWRAPPER_PYTHON          ,否則source ...../virtualenvwrapper.sh會報錯,報找不到python

     要export WORKON_HOME    ,否則workon找不到虛擬環境

     activate要以source 參數的形式運行,否則報無權限

      uwsgi  最后添&,表示后台執行

 

 

 

 reboot

不登錄,不執行任何指令

打開瀏覽器,瀏覽網站

SUCCESS!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM