python3 tornado 自启动服务

Posted Colinshi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 tornado 自启动服务相关的知识,希望对你有一定的参考价值。

最近用python3的tornado框架写了一个简单的服务。但是发现python本身部署的时候很不方便(好吧也许是我菜)。

tornado本身自带了web服务,所以只要直接执行脚本就能运行,但是感觉管理起来并不方便所以自己写了一个服务用systemctl来管理,这样可以开机自动启动。

我这里使用的是python3。自己记录一下简单的部署过程:

先在/etc/init.d/目录下新建文件

vi /etc/init.d/ecs_tornado

然后附上执行权限

chmod 755 /etc/init.d/ecs_tornado

文件内容:


#!/bin/sh
# chkconfig: 123456 90 10
# Server for AliYun Create ECS

daemon_start() {
    cd /aliECS_tornado
    /usr/local/bin/python3 /aliECS_tornado/server.py &
    echo "Server is running"
}

daemon_stop() {
    ps -ef|grep ‘/usr/local/bin/python3 /aliECS_tornado/server.py‘|grep -v grep|cut -c 9-15|xargs kill
    echo "Server is closed"
}

case "$1" in
  start)
    daemon_start
    ;;
  stop)
    daemon_stop
    ;;
  restart)
    daemon_stop
    daemon_start
    ;;
  *)
    echo "Usage: /etc/init.d/ecs_tornado {start|stop|restart}"
    exit 1
esac
exit 0

#!/bin/sh #shell脚本就是这样写。就是一个声明自己是什么代码。
chkconfig: 123456 90 10
    123456 告诉chkconfig程序需要注册的程序在那个等级(一般写2345就够了)
等级0表示:表示关机
      等级1表示:单用户模式
      等级2表示:无网络连接的多用户命令行模式
      等级3表示:有网络连接的多用户命令行模式
      等级4表示:不可用
      等级5表示:带图形界面的多用户模式
      等级6表示:重新启动
    90在/etc/rc.d/路径下的rc0.d-rc6.d目录下创建名字为 S90+文件名的文件连接(S90ecs_tornado),连接到/etc/rc.d/init.d目录下的的脚本。第一个字符是S,系统在启动的时候,就会添加一个start参数。
    10在/etc/rc.d/路径下的rc0.d目录下创建名字为 K10+文件名的文件连接(K10ecs_tornado)第一个字符为K,系统在关闭系统的时候,会运行添加一个stop。
daemon_start()和daemon_stop()内都是标准的shell语句。用python启动tornado的web服务器已经kill掉python的进程。

chkconfig --add ecs_tornado
添加(注册)服务
chkconfig ecs_tornado on
启动服务

完事收工。

















以上是关于python3 tornado 自启动服务的主要内容,如果未能解决你的问题,请参考以下文章

scrapy按顺序启动多个爬虫代码片段(python3)

tornado6与python3.7,异步新姿势

Tornado 高并发源码分析之一---启动一个web服务

Tornado-Secure cookie and Session

python3 tornado api + angular8 + nginx 跨域问题

使用python中的Tornado模块在handsontable中渲染自定义数据