linux下后台运行python脚本

news2024/11/15 7:52:29

这几天工作中遇到一个问题,后台运行python脚本,存储输出日志到linux系统中,因为在脚本中用了大量的print,导致输出很多信息,服务器内存占满了光是log就有120G,因此写下这篇博客,记录后台运行python脚本的一些方法和保留日志信息的参数

常见的命令

command >/dev/null 2>&1 &
command >/dev/null 2>python.log &
command >python.log 2>&1 &
command >/dev/null 2>log &

command:python test.py

下面将对这些命令的符号进行解释:

  1. 文件重定向运算符 – ‘>’:“>”符号被称为文件重定向运算符。其目的是将其左侧的命令指向右侧的命令。用更简单的语言来说,左边的任何数据字符串都将定向到运算符的右侧。定向大致意思就类似于文件写入的意思
  2. 末尾的&:指在后台运行

/dev/null

/dev/null是一个空设备——一种特殊类型的虚拟设备。它存在于每个Linux系统中,此设备的目的是丢弃发送到它的任何东西,并读取文件结束(EOF)。大多数虚拟设备用于读取数据;然而,/dev/null是唯一的,因为它用于抑制写入它的任何数据。简而言之,它充当Linux操作系统中的数据黑洞,数据写进来了,就没有了

文件描述符 – ‘0’,‘1’,‘2’

Linux中的每个命令执行都会生成三个相关文件:标准输入、标准输出和标准错误文件。Linux操作系统是指每个文件都有一个唯一的非负整数。
在这里插入图片描述

  • 标准输入为“0”
  • 标准输出为“1”
  • 标准错误为“2”

从上图可以看到,只有标准输出, 和标准错误,才会显示到screen中,才能写入到log中
标准输入、标准输出和标准误差流的技术术语分别为stdin、stdout和stderr

当这里可以发现/dev/null,和log文件可以看成是二个存放数据的容器,而文件描述符1和2可以看成是输出的数据,我们通过文件重定向运算符,将数据写入到指定的容器中,注意的是2可以写入到1中

2>&1 我们正在将标准错误输出(2的文件描述符)重定向到标准输出(1的文件描述符)。符号&在2>&1意味着1是一个目标文件描述符。

其中command >/dev/null 默认将文件描述1 给/dev/null了

那么这些命令不同组合下来就有:

组合
2>/dev/null
1>/dev/null
2>$1
1>test.log
2>test.log

nohup和tmux

nohup就是 no hang up的意思,主要功能是你在退出账户/关闭终端之后继续运行相应的进程,不挂断的运行,注意并没有后台运行的功能,一定要结合&使用才能实现后台运行功能,如果不末尾不加&,control+C,程序就挂断了。

nohup commond >/dev/null 2>python.log &
nohup python test.py &

Tmux是一个非常强大的终端多路复用器,非常有用,特别是当您通过SSH使用远程服务器时。

如果我们想在远程服务器上同时执行多项任务,通常我们有两种方法。我们可以将SSH到远程服务器中,并在每个终端命令的末尾运行所有内容。如果您想监控每项任务的进程,这是有问题的。我们还可以打开多个窗口,将SSH放入每个窗口的远程服务器,并为每个窗口运行一个任务。

tmux的功能简单说就是为终端多开几个窗口,执行完运行脚本,通过命令exit实现关闭窗口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据防篡改之主机加固篇

​ 随着物联网技术和互联网技术的日益发展,勒索病毒、工控安全、产线作业都面领着极大的威胁。智慧互联正在成为各个行业未来的发展方向,智慧互联包括物联网、万物互联,机器与机器,工业控制体系,信息化,也…

Redis之乱七八糟

redis过期时间 注意事项 DEL/SET/GETSET等命令会清除过期时间   在使用 DEL、SET、GETSET 等会覆盖key对应value的命令操作一个设置了过期时间的key的时候,会导致对应的key的过期时间被清除。 INCR/LPUSH/HSET等命令则不会清除过期时间   而在使用 INCR/LPUSH…

【Git】 常用命令速查

一、 Git 常用命令速查git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin git192.168.1.119:ndshowgit push origin ma…

人工智能 - 朴素贝叶斯、案例:文本情感分析

朴素贝叶斯:用概率去预测 1、朴素贝叶斯介绍 朴素:指的是,特征之间相互独立 拉普拉斯平滑系数,每个种类都加k,避免条件概率出现0 区分情书与作业的例子,用关键词: 是情书的概率更高&#xf…

基于Transformer的多变量风电功率预测TF2

Transformer目前大火,作为一个合格的算法搬运工自然要跟上潮流,本文基于tensorflow2框架,构建transformer模型,并将其用于多变量的风电功率负荷预测。 实验结果表明,相比与传统的LSTM,该方法精度更高&…

干货 | 背熟这些 Docker 命令,面试再也不怕啦~

我们下载 Docker 镜像的时候,默认会访问 Docker 网站,而 Docker 网站是在国外部署的,距离比较远下载速度特别慢。我们可以通过设置加速器的方式来加速 Docker 镜像下载的速度。下面将描述一下使用加速器的步骤:1.我们这里选择的是…

ORB-SLAM2 --- MapPoint::Replace函数

目录 1.函数作用 2.code 3.函数解析 1.函数作用 替换地图点,更新观测关系。 2.code void MapPoint::Replace(MapPoint* pMP) {// 同一个地图点则跳过if(pMP->mnIdthis->mnId)return;//要替换当前地图点,有两个工作:// 1. 将当前地图点的观测数据等其他数…

数据报告:[数字健康]如何引发美国医疗深度变革

本文由前嗅数据研究院出品 在美国,全球疫情的不断发展扩大,促进了其医疗行业的变革与创新,以“Digital Health”(数字健康)为关键词的医疗领域正在发⽣⾰命性的变化。本文着重介绍“Digital Health”的特点及其在各领域…

【博学谷学习记录】超强总结,用心分享|kafka如何保证数据不丢失

文章目录数据在Kafka中的流转阶段一:生产者如何保证数据不丢失ACK机制阶段二:Broker端如何保证数据不丢失磁盘副本阶段三:消费者如何保证数据不丢失消费者提交偏移量数据在Kafka中的流转 阶段一:生产者如何保证数据不丢失 ACK机制 生产者将数据生产到Broker后,Broker需要给一个…

学习python之——python入门

欢迎来到 Python 入门的学习之旅! Python 是一种高级编程语言,它是一种解释型语言,有着丰富的库和大量的第三方模块,能够用于许多不同的编程任务。无论你是想要学习 Python 进行 Web 开发,还是想用它来进行数据分析和…

Windows 远程桌面 Ubuntu

参考 Windows远程桌面工具连接Ubuntu系统使用总结_CHH3213的博客-CSDN博客_远程连接ubuntu 开启ssh服务(非必须 查看ssh是否已经开启 sudo ps -e | grep ssh 如果最后返回是sshd,证明ssh已经开启,跳到第四步 第二步,如果没有…

excel处理时间数据

目录excel中的日期中同时提取年月,可使用YEAR函数提取年份,MONTH函数提取月份,然后使用合并函数“&”将年月合并即可。方法步骤如下: 1、打开需要操作的EXCEL表格,在任意空白单元格上面的函数编辑框中输入“YEAR&…

自动化 HR 流程,实现人力资源部门无纸化

自动化 HR 流程,实现人力资源部门无纸化 如果公司使用手动流程,人力资源部门则可能是纸张最密集的部门之一。使用像Google Docs或Dropbox这样的免费文件共享应用程序可能会感觉比使用纸张更上一层楼。但是,这些应用程序旨在在某个时间点启用…

python居然还能画出这么精美的魔法少女,惊我一整年

前言 大家早好、午好、晚好吖 ❤ ~ 对于上面漫小姐姐图,大家觉得好不好看呢 这种极简的线条画出超具魅力的小姐姐图 简直不要太击中小心脏 接下来,我们就用python来实现一下,画出一个好看的少女~ 代码展示 导入模块 import turtle as te…

VIVADO异步时钟域约束(groups)

异步时钟域约束 VIVADO异步时钟约束之实例演示 操作方法: 1、先在synthesis 中打开 report clock interaction ,可以看到没有约束的异步时钟之间用红色标记; 2、在synthesis中打开edit timing constraints 设置异步时钟; 3、异…

QGroundControl 添加自定义FactGroup

基于QGC4.1.2版本进行添加,首先由于QGC的原来对FactGroup定义均写在Vehicle.h和Vehicle.cc两个文件中,个人感觉都写在Vehicle文件下回导致文件过大,所以将FactGroup定义进行分离,写在各自的.h和.cc文件下,然后在Vehicl…

运动无线耳机哪个品牌比较好、运动效果最好的运动耳机推荐

近几年,运动耳机愈发获得消费者的认可。它拥有着更牢固的佩戴方式,即便是长时间佩戴、也拥有更舒适的体验。因此,运动耳机也受到运动、健身人群的喜爱。但是不少小伙伴跟我反映如何选择一款体验出色的运动耳机,也成为了当前不少运…

计算机sci期刊拒稿两次,重新投稿接受的概率大吗? - 易智编译EaseEditing

重新投稿需要修改的幅度很大,而且就算能接受,时间也会非常久。 要是不着急用可以试试: 根据审稿意见一条条的来修改; 增加新的参考文献; 如果是“修改后重投”,可能需要注意以下问题: 1. 与…

数据可视化,2022A股正式收官,这么特别的一年,你挣钱了吗?

“A股年线止步三连阳!深成指全年累计下跌25.85%;创业板指全年累计下跌累计29.37%;上证50指数累计下跌19.52%;科创50指数累计下跌31.35%。其中,创业板指、深成指仅跑赢俄罗…

循环神经网络-高级篇RNN Classifier

循环神经网络-高级篇RNN Classifier 本篇实现一个循环神经网络的分类器RNN Classifier 我们使用一个数据集包含Name,Country,其中名字有几千个,来自18个不同的国家,我们的目标是训练一个模型,可以实现输入一个名字&a…