linux打开pythonshall,linux系统shell脚本后台运行python程序

python开发的同学们应该都知道怎么样去启动一个python应用,但是一旦我们把python应用部署到linux服务器上该如何启动呢?

方式①:就是使用进程管理工具,比如supervisor。想了解的小伙伴可以学习[这篇文章]

(https://www.cnblogs.com/toutou/p/supervisor.html)。

方式②:就是自己写一个简单shell脚本,将程序在后台运行,即使关闭linux终端窗口也不会影响进程的运行。

两者优缺点

方式

优点

缺点

supervisor进程管理

① 可以通过网页执行启动停止的操作② 单配置文件可控制多个程序③ 可控制进程数量4④进程资源控制能力比较强

① 本身需要被监控② 开机自启依赖其他程序③ 不能跨主机④依赖于meld3、setuptools

自写shell脚本

启停简单,无复杂配置

需要一定的linux知识基础,进程资源控制能力比较弱,简单的程序启停工具,存在一定的程序挂的风险。

#! /bin/bash

application='/home/wangping/'

a='hello'

b=`ps -aux| grep 'python3 /home/wangping/duty.py' | grep -v 'grep'| wc -l`

if [ ! $1 ];then

echo "请传参数 start|stop|restart"

else

if [ $1 == "start" ];then

if [ "$b" -gt "0" ];then

echo ""

else

nohup python3 /home/wangping/duty.py >${application}info.log 2>log &

echo ""

fi

fi

if [ $1 == 'stop' ];then

pid=`ps -aux | grep 'python3 /home/wangping/duty.py' | grep -v 'grep' | awk '{print $2}'`

if [ ! $pid ];then

echo ""

else

kill -s 9 $pid

echo ""

fi

fi

if [ $1 == 'restart' ];then

pid=`ps -aux | grep 'python3 /home/wangping/duty.py' | grep -v 'grep' | awk '{print $2}'`

if [ ! $pid ];then

nohup python3 /home/wangping/duty.py >${application}info.log 2>log &

echo ""

else

kill -s 9 $pid

nohup python3 /home/wangping/duty.py >${application}info.log 2>log &

echo ""

fi

fi

fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值