优草派 > Python

python程序保持后台运行?

徐晨光         优草派

在日常的python开发中,有时我们需要让程序在后台持续运行,而不是关闭终端窗口或按下Ctrl+C导致程序停止运行。本篇文章将从多个角度分析如何让python程序保持后台运行。

python程序保持后台运行?

一、使用nohup命令

使用nohup命令可以让程序在后台持续运行。例如,我们的python程序叫做test.py,执行以下命令即可:

nohup python test.py &

其中,&表示让任务在后台运行。程序运行的输出会保存在nohup.out文件中,可以使用tail命令查看运行日志。

二、使用screen命令

使用screen命令也可以让程序在后台持续运行。screen是一个终端窗口管理工具,可以在同一终端窗口中创建多个虚拟终端窗口,并可以在这些窗口之间自由切换。例如,我们执行以下命令:

screen -S test

然后在新的虚拟窗口中执行python test.py即可。此时,按下Ctrl+A+D即可切换回原来的窗口,而程序仍然在后台运行。

三、使用systemd

使用systemd也是一种让程序在后台持续运行的方法。systemd是Linux下的服务管理器,可以管理系统启动、进程管理等。我们可以创建一个systemd服务,使得python程序在系统启动时自动运行。具体步骤如下:

1. 创建服务文件,比如test.service:

[Unit]

Description=test service

After=network.target

[Service]

ExecStart=/usr/bin/python /path/to/test.py

Restart=always

[Install]

WantedBy=multi-user.target

2. 将服务文件拷贝到systemd目录下:

sudo cp test.service /etc/systemd/system/

3. 重新加载systemd配置:

sudo systemctl daemon-reload

4. 启动服务:

sudo systemctl start test

至此,我们的python程序就会在后台持续运行了。

四、使用Python代码

最后,我们介绍一种使用Python代码让程序在后台持续运行的方法。具体代码如下:

import os

def create_daemon():

pid = os.fork()

if pid > 0:

# Exit first parent

sys.exit(0)

# Detach from parent environment

os.chdir('/')

os.setsid()

os.umask(0)

# Fork again, to ensure process cannot acquire terminal again.

pid = os.fork()

if pid > 0:

# Exit second parent

sys.exit(0)

# Redirect standard file descriptors.

sys.stdout.flush()

sys.stderr.flush()

si = open(os.devnull, 'r')

so = open(os.devnull, 'a+')

se = open(os.devnull, 'a+')

os.dup2(si.fileno(), sys.stdin.fileno())

os.dup2(so.fileno(), sys.stdout.fileno())

os.dup2(se.fileno(), sys.stderr.fileno())

# Run the actual program.

main()

create_daemon()

使用该方法,我们可以在Python程序中调用create_daemon()函数即可让程序在后台持续运行。

综上所述,我们介绍了四种让python程序保持后台运行的方法:使用nohup命令、使用screen命令、使用systemd和使用Python代码。读者可以根据实际情况选择合适的方法。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024