python3 tornado 自啟動服務
阿新 • • 發佈:2018-01-23
運行 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 自啟動服務