Linux 下后台运行Python脚本,Linux 技巧:让进程在后台运行更可靠的几种方法,在Linux服务器后台跑程序

一些时间长的命令经常需要在后台运行,但苦于通常我们都是通过PC去连接服务器,一直保持ssh连接是不太现实的,这时就需要一些命令使得断开ssh连接后服务器依旧在运行命令。

命令后面加&在后台运行

用法:

python test.py > test.log 2>&1 &

其中:

>表示将标准输出(STDOUT)重定向到test.log文件;
2>&1表示将标准错误(STDERR)重定向到标准输出。1是标准输出的文件描述符,2是标准错误的文件描述符;
&表示将程序放到后台运行。

这样,我们已经将命令放到了后台执行。但是,只要我们断开ssh连接,进程将会被终止,是因为我们运行命令的session属于ssh的子进程。

nohup命令

使用nohup即可实现断开ssh连接命令也不会被终止。nohup: no hang up.,nohup 的使用是十分方便的,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename 2>&1"来更改缺省的重定向文件名
用法:

nohup python test.py > test.log 2>&1 &

​ 现在当我们直接关闭shell窗口,再连接上服务器,查看Python的进程,发现进程还在,但是,在python运行中却查看不到输出!

​ 因为:Python的输出有缓冲,导致python.log3并不能够马上看到输出。使用-u参数,使得python不启用缓冲。所以改正命令,就可以正常使用了

运行之后可通过jobs查看正在运行的任务。
重新登录之后使用ps和grep命令可查看后台进程,如ps aux|grep python可查看所有关于python的进程。
:以上方法适用于大部分命令,将下载和上传的任务放到后台也是很方便的~


 

https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

https://suixinblog.cn/2018/11/nohup.html

https://iyuluo.com/2017/11/01/Linux-%E4%B8%8B%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8CPython%E8%84%9A%E6%9C%AC/

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾世林jiashilin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值