1. 程式人生 > >python3 tornado 自啟動服務

python3 tornado 自啟動服務

運行 closed config 需要 conf add -c ali 添加

最近用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 自啟動服務