将python程序做成一个服务

部署运行你感兴趣的模型镜像

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

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

  • 代码如下:

    #!/bin/bash
    case "$1" in
    start)
        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

您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值