设置Django生产环境系统重启后的自动启动项
前面,作者已经介绍了把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
[Unit]
Description=nginx
After=network.target [Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true [Install]
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
#!/bin/sh
#add for chkconfig
#chkconfig:
#description: the description of the shell #关于脚本的简短描述
#processname: andyStart #第一个进程名,后边设置自启动的时候会用到 #下面要启动服务的命令
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生产环境系统重启后的自动启动项的更多相关文章
- 从零开始部署Django生产环境(适用:《跟老齐学Python Django实战》)
<跟老齐学Python Django实战>作为市面上少有的Django通俗实战书籍,给了我学习Django很大的帮助.作为一名新入门的菜鸟,全书我重复练习了至少三遍,每次都有新的收获. 前 ...
- Debian8.1 安装samba与windows共享文件,在系统重启后samba服务无法自动启动
Debian8.1安装配置完成并成功与window共享文件后,系统重启后再次访问时出现如下问题 (图)的解决方法 手动重启samba sudo /etc/init.d/samba start 从win ...
- ovs2.7 在系统重启后,再次使用时提示数据库无法连接的问题。
问题现象如下,ovs开始安装后,对ovs的操作是正常的,但是,现在系统重启后,OVS的操作第一条命令就失败,如下: 问题解决方法: 参考 http://blog.csdn.net/xyq54/art ...
- 系统重启后,mr程序不生成当前时间段的MRx文件问题
系统重启后,mr程序不生成当前时间段的MRx文件问题 2019-4-2 之前使用正常的MR程序,系统重启后无法生成MRE\MRO\MRS文件. 服务器有两个时钟:硬件时钟和系统时钟 硬件时钟从根本上讲 ...
- 解决win7系统重启后ip丢失问题,即每次电脑重启都要重新设置ip地址,重启后ip地址没了
自己制作的Ghost盘上网有点问题,每次重启后电脑的ip地址被还原,要重新设置 百度后终于找解决办法,在此记录. 第一步:点击左下角的WIN图标,输入CMD然后回车,打开DOS模式窗口. 第二步:在D ...
- django生产环境部署
测试环境:linux centos7下 1.安装uwsgi python3下安装: pip3 install uwsgi python2下安装: pip install uwsgi 如果是系统自带的p ...
- linux系统重启后提示An error occurred during the file system check.
一.问题描述 生产环境中一台浪潮NF8480M3外观红灯报警,鉴于无法登陆带外管理口,只能对服务器进行断电重启操作 二.问题现象 重启后进入开机过程并报错,正常来说进入此界面后直接输入root密码即可 ...
- django生产环境中部署
https://www.cnblogs.com/chenice/p/6921727.html 本节内容 uwsgi 介绍 uwsgi安装使用 nginx安装配置 django with nginx 如 ...
- django 生产环境部署手册
Django 是 python 的 web 框架,以下是其部署到生产环境的详细步骤,包含 Apache 和 nginx 版本. 部署环境 操作系统:centeros7.3 数据库:MySQL5.6.5 ...
随机推荐
- Linux共享文件夹映射到Windows磁盘
摘自:https://www.jianshu.com/p/4a06121450e5 1.1方案背景 本方案就是在解决磁盘不足的问题而产生的,利用映射盘的原理将Linux共享文件夹映射到Windows磁 ...
- App installation failed (A valid provisioning profile for this executable was not found)
真机调试build success ,App installation failed (A valid provisioning profile for this executable was not ...
- redis密码配置
配置密码 重启密码会失效 配置在redis.conf中 requirepass test123,则重启不会失效
- Java分布式定时任务
分布式定时任务 elastic-job 可以实现任务分片 quartz 可以把任务存入数据库,实时生成任务(添加数据库添加定时任务) 文档 中文翻译 翻译2
- Ansible-Hoc--样例
一.常用场景 1. 列出支持的模块及模块功能说明: 2. sudo用法: 3. 检查服务器存活,复制本地文件到远程: 4. 多线程判断服务器的存活: 5. 显示所有主机的hostname: 6. 列 ...
- Java线程 : 线程同步与锁
一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 例如:两个线程ThreadA.ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据. public ...
- Hadoop+Hbase+Zookeeper分布式存储构建
目录: 软件准备 Hadoop安装配置 zookeeper安装配置 Hbase安装配置 Hadoop+Hbase+zookeeper分布式存储构建 前言* Hadoop是Apache开源组织的一个分布 ...
- 逸鹏说道公众号福利:逆天常用的一些谷歌浏览器插件V1.3
插件导出:http://www.cnblogs.com/dunitian/p/5426552.html 插件导入:https://www.cnblogs.com/dotnetcrazy/p/97537 ...
- 自动化运维工具之SaltStack简介与安装
1.SaltStack简介 官方网址:http://www.saltstack.com官方文档:http://docs.saltstack.comGitHub:https:github.com/sal ...
- 深度解析qml引擎---(1)Qml文件加载
"美的事物是永恒的喜悦" --- 济慈 ...