设置django生产环境系统重启后的自动启动项(代码片段)

ali-na ali-na     2023-01-07     222

关键词:

前面,作者已经介绍了把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;

 

四、最后,重启操作系统,检验上述配置是否成功!













设置windows服务依赖项

...于服务中必须对MySQL进行访问,所以服务启动失败。尽管设置了启动失败后尝试重启,但是不能让项目服务自启动。    问题详述:1.xp系统不能设置服务“自动(延迟)&rdqu 查看详情

win10电脑自动重启是啥原因

...到“高级”选项卡,点击“启用和故障恢复”栏目中的“设置”按钮。从打开的“启动和故障恢复”窗口中,在“系统失败”栏目中清除勾选“自动重新启动”项,点击“确定”完成设置。如果通过以上设置之后仍然无法解决系... 查看详情

sqlserver服务设置为自动但重启后无法自动启动

...务中的MSSQLSERVER服务,每次都是要手动启动。强启动方式设置为自动后,重启电脑后又变为手动,并处于已停止状态,很是不便,望大家出出主意,谢谢。我用的是sqlserver2008在notepad中写入netstartmssqlserver另从为sql.bat添加到启动项... 查看详情

win10的电脑自己开机了为啥

导致电脑关机后又自动开机的原因:1、电脑系统设置不正确;Windows操作系统默认,当系统出现错误时会自动重新启动电脑。如果关机过程中系统出现错误,电脑就会重新启动。解决方法:关闭Windows操作系统默认的系统失败-自... 查看详情

easybcd误删win10启动项后的修复方法(代码片段)

...择默认启动项。之所以会出现这种情况,是因为之前装双系统的时候,使用EasyBCD更改过默认启动项。因此,为了避免每次重启,都得手动操作。因此,博主进入EasyBCD改回默认的引导项、并删除了不必要的启动引导。但是,由于... 查看详情

windowsxp设置server怎样开机自动启动

一、控制面板(或我的电脑点右键)-管理-服务和应用程序-服务server双击任何一个服务,在弹出的对话框中,里面有“启动类型”选项,这里可以选择。二、如果安装了360安全卫士,还要打开360安全卫士——优化加速——启动项... 查看详情

django项目生产环境部署

...ttps://www.jianshu.com/p/a679b602ef24安装uwsgi1、pip3installuwsgi2、在django项目下新建myuwsgi.ini文件(文件名可自取)3、进入项目根目录执行:没有报错则启动成功4、配置nginx在nginx同级目录下创建nginx.conf->my.conf文件进入nginx.conf配置重启nginx-... 查看详情

把服务的wlanautoconfig项启动并设置自动启动?

...序"文件夹。选择"服务"项,用于启动、终止并设置Windows服务。5、鼠标双击"WLANAutoConfig"图标,如图所示。该服务发现、连接、断开和配置IEEE802.11标准定义的WLAN,如果停止则无线适配器不能连接网络。6、在弹... 查看详情

电脑如何安装win10系统

...项中选择启动U盘后,开始引导镜像了选择语言、键盘等设置后,选择“下一步”点击“现在安装”安装程序正在启动在验证秘钥的阶段,有秘钥就直接输入,也可以暂时选择跳过同意许可条款选择“自定义”接下来进行分区,... 查看详情

centos配置开机启动项(代码片段)

...响,排查起来维护成本较高,且影响业务连续性。因此,设置新增业务为开机启动,显得十分必要,作者本身也是深有体会。本文着重介绍,如何为新增服务设置开启启动。设置开机启动方式一#ntsysv【quit】=--图形界面查看、设... 查看详情

Django + mod_wsgi。从 Apache 的 SetEnv 设置操作系统环境变量

】Django+mod_wsgi。从Apache的SetEnv设置操作系统环境变量【英文标题】:Django+mod_wsgi.SetOSenvironmentvariablefromApache\'sSetEnv【发布时间】:2015-01-1418:31:01【问题描述】:我需要拆分Django的开发和生产设置。我决定如果设置了USKOVTASK_PROD变... 查看详情

termux自动启动ssh

...术A每次重新打开termux的时候都需要重新运行sshd我们可以设置自动启动具体操作:1.添加或编辑文件~/.bashrc:2.添加如下内容并且保存。好了手机上重启termux,会发现ssh启动信息显示电脑到链接如图:-------分割线-------termux默认是b... 查看详情

生产环境中的 django 和 mysql 设置

】生产环境中的django和mysql设置【英文标题】:djangoandmysqlsetupinproduction【发布时间】:2012-05-3010:38:16【问题描述】:我正在尝试在我的生产服务器(Ubuntu12.04)上设置mysql。我按照本教程http://www.saltycrane.com/blog/2008/07/how-set-django-my... 查看详情

电脑开机启动后到xp画面后不断自动重启怎么处理

...级]选项卡,在高级选项卡找到[启动和故障恢复]下面的[设置]按扭。  03在打开的启动和故障恢复窗口中,把[自动重新启 查看详情

我的电脑开机启动项设置不起作用怎么办

我用金山卫士设置的,都是设置的开机不启动的,可开机后还是在快捷启动栏里右下角启动了,影响开机速度啊,诸如宏杰加密、迅雷、暴风,怎么解决啊,还有我的电脑未设置密码,可开机还是出现登陆端,得敲下回车,怎么... 查看详情

docker容器自动启动run

...了应对停电等情况影响正常web项目的访问,会把Docker容器设置为开机自动启动。如果创建时未指定--restart=always,可通过update命令设置Docker容器的重启策略是面向生产环境的一个启动策略,在开发过程中可以忽略该策略。Docker容器... 查看详情

戴尔d620怎么升级bios

...面。可以根据需要下载对应的操作系统就可以。二:然后设置U盘为第一启动项:启动计算机,并按住F2键不放,直到出现BIOS设置窗口。选择并进入第二项,“AdvancedBIOSFeatures(高级BIOS功能)选项”。在里面找到BootDevlicepriorfty(启... 查看详情

linux启动项添加环境变量和启动命令

...看开机启动项chkconfig--level5vncon关闭开机启动功能说明:设置系统的各种服务。语法:ntsysv[--back][--level<等级代号>]补充说明:这是RedHat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地 查看详情