自动启动gunicorn说明
博主原帖: 14 - 使用 Nginx 和 Gunicorn 部署 Django 博客我看评论里面博主用的是Ubuntu 14的系统,所以可以用upstart的方式写脚本自动启动gunicorn,而在Ubuntu 16系统中已经没有upstart了,而是采用的systemd的方式。我参考了评论里面_CindyL_的接SystemdForUpstartUsers,搜索了相关的东西,终于把这个自动启动给弄出来了,现在把过程写一下,防止大家再走弯路。
我用的操作系统是Ubuntu 16.04 LTS,用户是siar,非root用户
1. 新建目录(自启动服务文件存放目录)
sudo mkdir -p /usr/lib/<span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/systemd" title="View all posts in systemd" target="_blank">systemd</a></span>/system
1
|
sudo
mkdir
-
p
/
usr
/
lib
/
systemd
/
system
|
2. 新建文件(自启动的服务文件)
sudo vim /usr/lib/systemd/system/siar.service
1
|
sudo
vim
/
usr
/
lib
/
systemd
/
system
/
siar
.
service
|
2.1 添加如下内容
[Unit] After=syslog.target network.target remote-fs.target nss-lookup.target [Service] # 你的用户 User=siar # 你的目录 WorkingDirectory=/home/siar/sites/django-blog-learning/blogproject # <span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/gunicorn" title="View all posts in gunicorn" target="_blank">gunicorn</a></span>启动命令 ExecStart=/home/siar/sites/env/bin/gunicorn --bind unix:/tmp/siar.socket blogproject.wsgi:application Restart=on-failure [Install] WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
|
[
Unit
]
After
=
syslog
.
target
network
.
target
remote
-
fs
.
target
nss
-
lookup
.
target
[
Service
]
# 你的用户
User
=
siar
# 你的目录
WorkingDirectory
=
/
home
/
siar
/
sites
/
django
-
blog
-
learning
/
blogproject
# gunicorn启动命令
ExecStart
=
/
home
/
siar
/
sites
/
env
/
bin
/
gunicorn
--
bind
unix
:
/
tmp
/
siar
.
socket
blogproject
.
wsgi
:
application
Restart
=
on
-
failure
[
Install
]
WantedBy
=
multi
-
user
.
target
|
有一些参数我也不是太懂,具体可以参照下面的systemd.service 中文手册链接。
2.2 保存并退出
:wq
1
|
:
wq
|
3. 启动服务
sudo systemctl start siar
1
|
sudo
systemctl
start
siar
|
我的文件名是siar.service,所以就sudo systemctl start siar
4. 添加服务到开机自动运行
sudo systemctl enable siar.service
1
|
sudo
systemctl
enable
siar
.
service
|
5. 验证启动
ps -ef | grep gunicorn
1
|
ps
-
ef
|
grep
gunicorn
|
查看gunicorn是否已经启动,有两个进程。
6. 参考链接
SystemdForUpstartUsers
systemd.service 中文手册
Ubuntu 16.04 增加bash脚本为service,开机自启服务脚本配置
用 systemd 配置一个简单的自动重启服务