近日,在阿里云服务器上部署了一个Python应用,Web框架为Tornado,服务器系统为Ubuntu 16.04。
服务的启动也十分的简单:
python services.py
我是利用Xshell工具连接云服务器的,在启动服务的时候发现,一旦我关闭了Xshell窗口,服务就会停止,这就意味我必须时刻保持着对服务器的连接,服务才不会被Stop,这并比现实,所以我想写个脚本文件来控制程序的start以及stop。
具体实现如下 : service-manager.sh(因为我是直接在root权限下进行安装的,其它用户修改一下workdir即可,当然python文件名需要同步修改)
1 #!/bin/sh 2 # chkconfig: 123456 90 10 3 # 4 workdir=/root/EasySild 5 6 daemon_start(){ 7 cd $workdir 8 python services.py & 9 echo "Server started." 10 } 11 12 daemon_stop(){ 13 pid=`ps -ef | grep 'python services.py' | awk '{ print $2 }'` 14 echo $pid 15 kill $pid 16 sleep 2 17 echo "Server Killed." 18 } 19 20 case "$1" in 21 start) 22 daemon_start 23 ;; 24 stop) 25 daemon_stop 26 ;; 27 restart) 28 daemon_stop 29 daemon_start 30 ;; 31 *) 32 echo "Usage: Services {start|stop|restart}" 33 exit 1 34 esac 35 exit 0
脚本这样就已经准备好了,可以放在跟python文件同级的路径下,也可以放在你想要的位置。
脚本运行指令:(首先要进入脚本所在路径)
起服:sh service-manager.sh start
停服:sh service-manager.sh stop
重启:sh service-manager.sh restart
PS:有需要的小伙伴也可以将停服、起服脚本分开。