游乐游手机版
首页/编程语言/文章详情

Linux下使用nohup命令后台运行Python脚本的方法

时间:2026-05-06 22:25
在 Linux 中让 Python 脚本后台持久运行的实用指南 想让你的 Python 脚本在 Linux 服务器上“风雨无阻”地持续运行吗?即使你关闭了终端窗口或者 SSH 连接意外断开,任务也不会被中断。这听起来像是系统管理员的魔法,其实实现起来很简单,核心就在于一个经典命令:nohup。 下面

在 Linux 中让 Python 脚本后台持久运行的实用指南

想让你的 Python 脚本在 Linux 服务器上“风雨无阻”地持续运行吗?即使你关闭了终端窗口或者 SSH 连接意外断开,任务也不会被中断。这听起来像是系统管理员的魔法,其实实现起来很简单,核心就在于一个经典命令:nohup

下面,我们就来一步步拆解这个操作流程。

第一步:打开终端并定位脚本

首先,自然是在你的 Linux 系统上打开终端。接着,使用 cd 命令导航到存放 Python 脚本的目录。命令格式如下:

cd /path/to/your/python/script

把其中的路径替换成你脚本的实际存放位置即可。

第二步:使用 nohup 启动后台任务

定位到目录后,就可以使用这条“黄金命令”了:

nohup python script_name.py &

这里有几个关键点:

  • script_name.py:请替换成你实际的 Python 脚本文件名。
  • & 符号:它的作用是将进程直接放入后台运行,这样你就能立刻拿回终端的控制权。
  • nohup 命令:这才是确保脚本不被中断的核心。它会告诉系统,忽略后续的挂断信号,让进程与终端“脱钩”。

第三步:理解输出与重定向

运行上一条命令后,你通常会立刻看到这样一行提示:

nohup: ignoring input and appending output to 'nohup.out'

这行信息非常有用。它告诉你两件事:第一,脚本的标准输出和错误信息不会被打印到当前终端;第二,它们被自动追加记录到了一个名为 nohup.out 的文件里。这个文件默认生成在当前目录。

如果你希望将输出定向到更明确的文件,比如方便日后查看的日志,可以这样操作:

nohup python script_name.py > output_file.txt &

这样,所有输出就会乖乖地跑到 output_file.txt 里了。

第四步:验证与查看运行状态

命令执行后,你的脚本就已经在后台安家落户了。此时,即便你直接关闭终端窗口或者断开 SSH 连接,这个 Python 进程依然会继续执行,不会受到影响。

那么,如何确认它真的在跑,或者查看它打印了什么呢?一个非常实用的命令是 tail -f

tail -f nohup.out

这个命令会实时追踪并显示 nohup.out 文件末尾新增的内容,就像你直接在终端里看到脚本打印日志一样,非常直观。

第五步:如何管理后台进程

有始有终。当我们需要停止这个后台脚本时,该怎么办?方法也很清晰。

首先,我们需要找到这个进程的“身份证号”——也就是进程 ID (PID)。使用 ps 命令配合 grep 过滤就能轻松找到:

ps aux | grep script_name.py

在输出结果中,你可以找到对应的 PID(通常是第二列的数字)。找到之后,使用 kill 命令即可终止它:

kill PID

请务必将命令中的 PID 替换成你实际查到的数字。执行后,该后台 Python 任务就会被安全地停止。

至此,一个完整的“启动-监控-终止”循环就完成了。掌握这套流程,你就能游刃有余地管理那些需要长期运行的后台任务了。

来源:https://www.yisu.com/ask/8691047.html
上一篇Ubuntu系统下PHP日志配置与管理最佳实践指南 下一篇nohup命令日志分割与管理的实用方法详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Debian下Golang跨平台开发方法指南
编程语言 · 2026-07-09

Debian下Golang跨平台开发方法指南

在Debian系统上,通过Go原生交叉编译、标准库跨平台抽象及合理代码设计,实现“一次编写,多平台运行”。方法包括环境配置、平台差异处理、交叉编译、依赖管理与多平台测试,最终生成稳定静态可执行文件。

Express服务器JSON请求体正确解析完整实践指南
编程语言 · 2026-07-09

Express服务器JSON请求体正确解析完整实践指南

Express应用中发现`req body`显示为`[Object]`,并非JSON解析失败,而是`console log()`默认对象缩略行为所致。使用`JSON stringify()`或`util inspect()`可完整查看数据结构。正确配置`express json()`中间件并设置请求头,即可确保解析成功。生产环境应避免直接输出敏感数据,建议限

Java泛型构造惯用模式:工厂模式替代反射与冗余参数
编程语言 · 2026-07-09

Java泛型构造惯用模式:工厂模式替代反射与冗余参数

Java接口无法声明构造方法,初始化泛型子类型时应使用工厂接口或Supplier函数式接口,避免反射与自引用泛型。工厂模式实现编译期安全、零反射开销、IDE友好,按需选用Supplier或专用工厂接口。

Debian系统Golang并发编程入门教程
编程语言 · 2026-07-09

Debian系统Golang并发编程入门教程

在Debian系统通过包管理器安装Golang,介绍并发编程:Goroutines是轻量级线程,用go关键字启动;Channels用于同步通信,两者结合实现高并发服务。

Debian下Golang机器学习库推荐与使用指南
编程语言 · 2026-07-09

Debian下Golang机器学习库推荐与使用指南

在Debian系统配置Golang环境后,可选用Gorgonia、Gonum和GoLearn等机器学习库。以Gorgonia为例,通过计算图定义线性回归模型,利用梯度下降优化均方误差,训练后即可预测新数据。