linux上怎么把python程序丢到后台执行

 时间:2024-10-12 01:23:23

在使用python进行程序开发的时候,需要将写好的python程序丢到后台执行,然后我们在晚上回去休息,第二天再过来看结果即可。但是在linux上有哪些方法可以把python程序丢到后台执行呢?我们一起来看看。

工具/原料

linux服务器

一、 linux命令方式

1、首先我们来写一小段小脚本,内容如下所示:#!/usr/bin/env pythonimport timewith open('./test.log', 'w+'像粜杵泳) as tf: i = 0 while True: i = i + 1 time.sleep(1) print(i, file=tf, flush=True)这段脚本的内容就是,每个1s输出一个值到test.log这个文件中去。如果这个程序在后台被终结,那么test.log这个日志文件中就看不到对应的值了。

linux上怎么把python程序丢到后台执行

2、首先我们来看第一种方式,使用linux的后台命令&,执行方式如下所示:python test.py &执行结果如下所示,可以看到它生成了一个后台pid值,如下面图中所示,然后我们用ps命令查看一下,可以看到后台确实有这个进程。

linux上怎么把python程序丢到后台执行

3、然后我们来看一下日志输出文件,命令是:ls test.*可以看到目录下面确实生成了test.log这个日志文件,再用tail -f命令看一下日志输出,可以看到值确实一直在增加。如下面图中所示:

linux上怎么把python程序丢到后台执行

4、下面我们再来看第二种方式,使用nohup命令来执行。使用nohup执行之前,现有kill命令将后台的test.py命令终结。命令格式是:kill -9 pid执行结果如下面第一张图中所示,然后使用nohup命令启动test.py程序,命令格式是:nohup python test.py &执行结果如下所示,同样的,也是生成一个后台进程,通过进程编号可以看到对应的进程,然后通过tail -f命令也可以看到test.log里的数值是在递增的,说明程序在后台运行正常。

linux上怎么把python程序丢到后台执行
linux上怎么把python程序丢到后台执行

二、python模块daemon

1、上面两种方式都是通过linux系统自带的命令来执行的,但是我们还可以通过python自己的模块来执行,这个模块就是daemon,首先我们来安装这个模块,命令是pip install daemon这个模块比较小,安装的也比较快。如下所示:

linux上怎么把python程序丢到后台执行

2、安装完成后,我们需要訇咀喃谆将我们的测试脚本稍微修改一下,修改后的内容如下:#!/usr/bin/env pythonimport timefrom daemon import Da髫潋啜缅emonContextwith open('./test.log', 'w+') as tf: def test(): i = 0 while True: i = i + 1 time.sleep(1) print(i, file=tf, flush=True) with DaemonContext(files_preserve=[tf]): test()将原来的测试功能改成一个叫做test的函数,然后在daemon的模块里调用这个函数,这里如果要想将测试日志写入文件的把,必须先打开文件句柄,然后把文件句柄通过files_preserve参数传递给DaemonContext,否则,不会把结果输出到任何文件。

linux上怎么把python程序丢到后台执行

3、这个时候就简单了,直接执行命令python test.py然后就自动把test.py这个程序丢到后台去执行了,如下所示,然后使用tail -f命令查看,可以看到数据在递增。说明这个方法也是有效的。

linux上怎么把python程序丢到后台执行
  • python如何将数据写入excel表格中
  • 如何运用PYTHON判断路径是否存在
  • Word VBA教程:For Each....In语句
  • python如何给excel指定行列的单元格赋值?
  • 如何利用python的xlrd读取excel文件?
  • 热门搜索
    三八妇女节手抄报内容 祖国建设新成就手抄报 新学期新起点手抄报 重阳节手抄报内容大全 红领巾相约中国梦手抄报 民俗手抄报 关于长征的手抄报 元旦手抄报文字 幼儿手抄报 新学期新希望手抄报