uwsgi 配置爲systemctl服務

uwsgi 配置爲systemctl服務

在阿里雲上下載了個鏡像,看到可以使用systemctl控制uwsgi,就把配置複製過來,移到Ubuntu上

1、在/usr/lib/systemd/下新建system文件夾

mkdir /usr/lib/systemd/system

2、/usr/lib/systemd/system/路徑下,新建uwsgi.service文件,以下是文件內容

[Unit]
Description=uWSGI Emperor Service
After=syslog.target

[Service]
EnvironmentFile=-/etc/sysconfig/uwsgi
ExecStartPre=/bin/mkdir -p /run/uwsgi               # 在/run/下新建新建uwsgi文件夾,後面的uwsgi.pid文件會放在這裏

# 沒有uwsgi用戶和用戶組的情況下,需要通過uesradd和groupadd添加
ExecStartPre=/bin/chown uwsgi:uwsgi /run/uwsgi      # 修改文件夾的權限
ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi.ini       # 啓動uwsgi
ExecReload=/bin/kill -HUP $MAINPID                  # 服務要求重新載入配置所需的命令行
KillSignal=SIGINT                                   # 通過該信號殺死所有服務進程
Restart=always
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target

3、在/etc/下新建uwsgi.ini文件

[uwsgi]
uid = uwsgi
gid = uwsgi
pidfile = /run/uwsgi/uwsgi.pid
emperor = /etc/uwsgi.d
stats = /run/uwsgi/stats.sock
chmod-socket = 660
emperor-tyrant = true
cap = setgid,setuid

4、啓動service服務

root@xxx:/usr/lib/systemd/system# systemctl enable uwsgi.service

一切順利的話,uwsgi服務已經正常啓動了

添加用戶配置文件

5、在/etc/uwsgi.d/下添加用戶的uwsgi應用配置文件,下面是我的一個例子

[uwsgi]
plugins       = python
master        = true
wsgi-file     = /data/wwwroot/dj_project/dj_project/wsgi.py
home          = /data/wwwroot/venv
chdir         = /data/wwwroot/dj_project
socket        = /data/wwwroot/dj_project/script/wst.sock
buffer-size   = 8192
enable-threads= true
close-on-exec = true
vacuum        = true
chmod-socket  = 777
processes     = 2
daemonize     = /data/wwwroot/dj_project/script/wst.log

6、設置配置文件的用戶組權限

沒有uwsgi用戶和用戶組的情況下,需要通過uesradd和groupadd添加

root@xxx:/# chown uwsgi:uwsgi -R /etc/uwsgi.d/

7、直接重啓uwsgi
可以通過status查看uwsgi的運行狀態,下面顯示運行成功

root@xxx:/# systemctl restart uwsgi
root@xxx:/# systemctl status uwsgi
● uwsgi.service - uWSGI Emperor Service
   Loaded: loaded (/usr/lib/systemd/system/uwsgi.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-07-31 00:00:45 CST; 2 days ago
 Main PID: 8992 (uwsgi)
   Status: "The Emperor is governing 1 vassals"
   CGroup: /system.slice/uwsgi.service
           ├─8992 /usr/bin/uwsgi --ini /etc/uwsgi.ini
           ├─8995 /usr/bin/uwsgi --ini /etc/uwsgi.ini
           ├─8996 /usr/bin/uwsgi-core --ini dj_project.ini
           ├─8998 /usr/bin/uwsgi-core --ini dj_project.ini
           └─8999 /usr/bin/uwsgi-core --ini dj_project.ini

Jul 31 00:00:45 iZuf6heigehruk45w3nl65Z systemd[1]: Started uWSGI Emperor Service.
Jul 31 00:00:45 iZuf6heigehruk45w3nl65Z uwsgi[8992]: *** starting uWSGI Emperor ***

參考資料

http://www.jinbuguo.com/systemd/systemd.service.html systemctl 參考手冊

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