zoukankan      html  css  js  c++  java
  • 设置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
     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;

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

  • 相关阅读:
    jQuery 全选-------左右移动select
    圆饼 折线图的 js
    折线图
    圆饼图
    el 表达式的if else
    list查询出来后存到map里
    spring Mvc 二级联动(3)
    Python之列表
    SAS 中的数据拼接
    Git 安装不是默认路径,生成密钥
  • 原文地址:https://www.cnblogs.com/ali-na/p/9781266.html
Copyright © 2011-2022 走看看