linux下后台运行python脚本

简介: linux下后台运行python脚本

这几天工作中遇到一个问题,后台运行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


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


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

末尾的&:指在后台运行


/dev/null


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


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


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

a19cc87e4ab64f29b9b6d719034bb93a.png


  • 标准输入为“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实现关闭窗口



相关文章
|
3月前
|
JSON 算法 API
深度分析小红书城API接口,用Python脚本实现
小红书作为以UGC内容为核心的生活方式平台,其非官方API主要通过移动端抓包解析获得,涵盖内容推荐、搜索、笔记详情、用户信息和互动操作等功能。本文分析了其接口体系、认证机制及请求规范,并提供基于Python的调用框架,涉及签名生成、登录态管理与数据解析。需注意非官方接口存在稳定性与合规风险,使用时应遵守平台协议及法律法规。
|
3月前
|
JSON API 数据安全/隐私保护
【干货满满】分享微店API接口到手价,用python脚本实现
微店作为知名社交电商平台,其开放平台提供商品查询、订单管理等API接口。本文介绍如何通过微店API获取商品到手价(含优惠、券等),涵盖认证机制、Python实现及关键说明。
|
3月前
|
JSON API 数据安全/隐私保护
【干货满满】分享淘宝API接口到手价,用python脚本实现
淘宝开放平台通过API可获取商品到手价,结合商品详情与联盟接口实现优惠计算。需使用AppKey、AppSecret及会话密钥认证,调用taobao.tbk.item.info.get接口获取最终价格。代码示例展示签名生成与数据解析流程。
|
3月前
|
JSON API 数据安全/隐私保护
深度分析苏宁API接口,用Python脚本实现
苏宁易购开放平台提供覆盖商品、订单、库存、门店等零售全链路的API服务,采用RESTful架构与“AppKey+AppSecret+签名”认证机制,支持线上线下一体化业务处理。本文详解其API特性、认证流程及Python调用实现。
|
3月前
|
JSON API 数据格式
深度分析大麦网API接口,用Python脚本实现
大麦网为国内领先演出票务平台,提供演唱会、话剧、体育赛事等票务服务。本文基于抓包分析其非官方接口,并提供Python调用方案,涵盖演出列表查询、详情获取及城市列表获取。需注意非官方接口存在稳定性风险,使用时应遵守平台规则,控制请求频率,防范封禁与法律风险。适用于个人学习、演出信息监控等场景。
|
2月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
419 9
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
297 0
Linux系统初始化脚本
|
2月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
310 3
|
3月前
|
JSON API 开发者
深度分析阿里妈妈API接口,用Python脚本实现
阿里妈妈是阿里巴巴旗下营销平台,提供淘宝联盟、直通车等服务,支持推广位管理、商品查询等API功能。本文详解其API调用方法,重点实现商品推广信息(佣金、优惠券)获取,并提供Python实现方案。
|
3月前
|
JSON API 数据安全/隐私保护
深度分析虾皮城API接口,用Python脚本实现
虾皮开放平台提供丰富的API接口,支持商品管理、订单处理及促销信息查询等功能。本文详解API认证机制与调用方法,基于Python实现商品价格及到手价获取方案,适用于电商数据分析与运营。