将python程序做成一个服务

来源:互联网 发布:武汉优化jw100 编辑:程序博客网 时间:2024/05/18 01:35

在linxu下会发现有很多的程序都是用service 管理,如nginx,mysql等等
由于项目部署在服务器上,然后每次pull之后,都需要重启(杀进程,再启动),才能生效,就想做成一个服务,方便每次重启,比如service XXX restart。

通过查资料,service都是通过写成shell脚本放在/etc/init.d/ 目录下进行管理的,同时能在目录下找到一些常用的服务。大概看了下,通过查资料写出了如下脚本

  • 代码如下:

    #!/bin/bashcase "$1" instart)    echo "start test-service    cd /home/work/python-script    nohup python /home/tanxu/work/python-script/start.py > /home/tanxu/log.txt 2>&1 &;;restart)    echo "kill test-service"    ps -ef |grep python |grep /work/python-script/start.py |awk '{printf $2}'|xargs kill -9    echo "start test-service"    cd /home/work/python-script    nohup python /home/work/python-script/start.py > /home/tanxu/log.txt 2>&1 &;;stop)    echo "kill test-service"    ps -ef |grep python |grep /work/python-script/start.py |awk '{printf $2}'|xargs kill -9        ;;esac    

仅仅写完脚本放在 /etc/init.d/ 目录下是不够的
后面查资料发现可以通过chkconfig 来管理系统服务,但是我用的ubuntu,在centos下是可以的,在ubuntu下google上提到一个替代品sysv-rc-conf, apt-get install下就可以直接用了

添加一个服务: sudo update-rc.d ServiceName defaults

删除一个服务: sudo update-rc.d ServiceName remove

启动: sudo sysv-rc-conf 它可心配置各服务在各级别上的启动情况.

随时想启动某个服务, 可以这样: sudo /etc/init.d/ServiceName start

0 0
原创粉丝点击