• nginx服务和uwsgi服务如何设置开机自启动


    上次学到了在云服务器下如何部署Django项目,用到了nginx服务和uwsgi服务,需要手工启动这2个服务的命令。

    现在考虑如何设置开机自启动,为什么要这样考虑?因为服务器万一出问题,意外重启了,那我们部署的Django项目不就挂了吗?到时候还是要人工去启动吗?

    所以最好还是配置开机自启动以防万一。

    网上查了很多开机自启动配置,最后选择:修改系统文件 /etc/rc.d/rc.local ,添加启动命令脚本。

    测试过程中,发现nginx服务自启动比较容易,直接添加就行。但是发现 uwsgi 服务,配置该服务开机自启几种方式,reboot后,导致云服务器挂掉,无法再登录,只能通过云服务官网重启才能进入,所以谨慎操作!!!

    经过多次测试和网上经验总结,确定了一个可行方案:

    1. 在 /etc/init.d/ 路径下面,建立 uwsgi.sh 启动命令脚本,注意“一定要放到 /etc/init.d/ 路径下面!!!”,其他路径容易导致云服务器挂掉,我试过多次了。

    2.  vim /etc/init.d/uwsgi.sh

    添加如下内容:注意“执行命令的文件一定要用绝对路径!!!”

    #!/bin/bash
    /usr/python3/bin/uwsgi --ini /home/django_pro/mysite/uwsgi.ini;

    esc 退出编辑,:wq 保存修改

    将 /etc/init.d/uwsgi.sh修改为可执行

    chmod 777 /etc/init.d/uwsgi.sh

    3. 添加开机自启动脚本 到  /etc/rc.d/rc.local 上。

    vim /etc/rc.d/rc.local

    1. #!/bin/bash
    2. # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
    3. #
    4. # It is highly advisable to create own systemd services or udev rules
    5. # to run scripts during boot instead of using this file.
    6. #
    7. # In contrast to previous versions due to parallel execution during boot
    8. # this script will NOT be run after all other services.
    9. #
    10. # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
    11. # that this script will be executed during boot.
    12. #开机自启动 nginx 服务
    13. /usr/sbin/nginx
    14. #开机自启动 uwsgi 服务,一定要用绝对路径执行该sh
    15. /etc/init.d/uwsgi.sh

    esc 退出编辑,:wq 保存修改

    将rc.local修改为可执行

    chmod 777 /etc/rc.d/rc.local

    4. reboot 重启检验结果

    1. [root@~]# ps -ef|grep uwsgi
    2. root 1056 1 0 16:23 ? 00:00:00 /usr/python3/bin/uwsgi --ini /home/django_pro/mysite/uwsgi.ini
    3. root 1408 1056 0 16:23 ? 00:00:00 /usr/python3/bin/uwsgi --ini /home/django_pro/mysite/uwsgi.ini
    4. root 1572 1473 0 16:48 pts/0 00:00:00 grep --color=auto uwsgi
    5. [root@~]# ps -ef|grep nginx
    6. root 1017 1 0 16:23 ? 00:00:00 nginx: master process /usr/sbin/nginx
    7. nginx 1023 1017 0 16:23 ? 00:00:00 nginx: worker process
    8. root 1574 1473 0 16:49 pts/0 00:00:00 grep --color=auto nginx

  • 相关阅读:
    【Hack The Box】linux练习-- Networked
    C++ 20 协程(一)
    你觉得程序员最需要具备哪些软技能?
    微信开发工具构建npm and git切换分支
    鲲鹏devkit训练营——《锁长期等待》项目解析
    微服务-sentinel详解
    C++ 简介、基本语法、数据类型、变量、常量
    20220921(信号量)
    代码随想录算法训练营第三十四天| LeetCode1005. K 次取反后最大化的数组和、LeetCode134. 加油站、LeetCode135. 分发糖果
    已解决javax.transaction.InvalidTransactionException:事务无效的正确解决方法,亲测有效!!!
  • 原文地址:https://blog.csdn.net/xionghui2007/article/details/132754423