百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

【Python程序开发系列】如何让python脚本一直在后台保持运行

itomcoil 2025-06-12 13:17 11 浏览

这是我的第385篇原创文章。

一、引言

让 Python 脚本在后台持续运行,有几种常见的方式,具体方式可以根据你的系统环境和需求选择。

二、Linux 或 macOS 系统

2.1 使用 nohup命令

nohup(no hang up)命令可以让进程在后台运行,即使用户退出终端会话,该进程也会继续运行。

nohup python your_script.py &

nohup:命令会使得脚本在后台运行,并且输出会被重定向到 nohup.out文件。&:符号使得进程在后台运行。

如果你希望将输出重定向到特定文件,可以这样做:

nohup python your_script.py > output.log 2>&1 &

> output.log:将标准输出重定向到 output.log 文件。

2>&1:将标准错误输出(stderr)重定向到标准输出(stdout)。

2.2 使用 screen或 tmux工具

screen 和 tmux 是常见的终端复用工具,可以让你在后台运行多个会话,并且可以随时断开和重新连接。

启动一个新的 screen 会话:

screen -S my_session

运行你的 Python 脚本:

python your_script.py

按 Ctrl + A 然后按 D 来将会话放到后台。对于 tmux,操作类似。

2.3 使用 systemd服务(适用于 Linux 系统)

如果你需要将 Python 脚本作为系统服务运行,可以使用 systemd 服务来管理。创建一个新的 systemd 服务文件,例如
/etc/systemd/system/myscript.service:

sudo nano /etc/systemd/system/myscript.service
在文件中加入以下内容:[Unit]

Description=My Python Script

[Service]

ExecStart=/usr/bin/python3 /path/to/your_script.py

WorkingDirectory=/path/to/your/script

Restart=always

User=your_user

Group=your_group

StandardOutput=file:/path/to/log/output.log

StandardError=file:/path/to/log/error.log

[Install]

WantedBy=multi-user.target
重新加载 systemd 服务并启用它:sudo systemctl daemon-reload

sudo systemctl enable myscript.service

sudo systemctl start myscript.service
查看日志:sudo journalctl -u myscript.service

三、Windows 系统

3.1 使用 pythonw.exe

在 Windows 上,可以使用 pythonw.exe 来运行 Python 脚本。pythonw.exe 是一个没有命令行窗口的 Python 解释器,适用于后台运行脚本。

使用 pythonw.exe 来启动脚本:

pythonw your_script.py

3.2 使用任务计划程序(Task Scheduler)

Windows 提供了任务计划程序(Task Scheduler)来管理后台任务。

  1. 打开“任务计划程序”(Task Scheduler)。
  2. 选择“创建任务”(Create Task)。
  3. 在“常规”选项卡下,设置任务的名称和描述。
  4. 在“触发器”选项卡下,设置任务触发的条件(例如,系统启动时或指定时间)。
  5. 在“操作”选项卡中,选择“启动程序”,并选择 Python 可执行文件以及你的脚本。
  6. 点击“确定”,即可后台运行 Python 脚本。

3.3 使用 pyinstaller打包成可执行文件

如果你希望 Python 脚本在没有命令行界面的情况下运行,并且能够方便地管理,可以使用 pyinstaller 打包你的脚本成 Windows 可执行文件(.exe):

安装 pyinstaller

pip install pyinstaller

使用 pyinstaller 打包脚本:

pyinstaller --noconsole --onefile your_script.py

--noconsole 选项确保脚本没有控制台窗口。

--onefile 选项将所有文件打包成一个单一的可执行文件

执行后,生成的 .exe 文件会在 dist/ 目录中,可以直接在后台运行。

作者简介: 读研期间发表6篇SCI数据算法相关论文,目前在某研究院从事数据算法相关研究工作,结合自身科研实践经历持续分享关于Python、数据分析、特征工程、机器学习、深度学习、人工智能系列基础知识与案例。关注gzh:数据杂坛,获取数据和源码学习更多内容。

原文链接:

【Python程序开发系列】如何让python脚本一直在后台保持运行(干货总结)

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...