Python脚本后台运行
1 Linux/Mac
nohup命令:https://baike.baidu.com/item/nohup/5683841?fr=aladdin
ps命令:https://www.runoob.com/linux/linux-comm-ps.html
kill命令:https://www.runoob.com/linux/linux-comm-kill.html
在Linux系统下,若实现程序的后台运行和终止。通常使用nohup命令将脚本在后台运行,由kill命令将对应PID程序终止运行。nohup命令忽略所有的挂操作,即使在用户注销情况下也可以在后台运行。以xxx.py为例,后台运行命令如下:
nohup python -u xxx.py > nohup.log 2>&1 &1
其中,nohup.log为程序输出日志,命令末尾&代表后台运行,-u 是为了python中print能在日志(nohup.log)中输出。
终止后台的进程,需要先通过ps命令查询程序PID,之后通过kill命令将PID对应的程序终止,流程如下:
1)通过linux中ps命令查找python运行进程的PID,命令如下
ps -ef | grep python 1
2)根据程序的PID,通过kill命令将程序终止,命令如下
kill -s 9 xxxxx 1
下述以test.py代码为例,在后台运行和终止。
import time
import datetime
while True:
time.sleep(1)
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
1234567
1) 样例脚本后台运行
2) 样例脚本程序终止
2 Windows
2.1 任务计划程序
在Windows中通过任务计划程序实现Python脚本后台运行,计算机-> 管理-> 系统工具-> 任务计划程序。操作步骤详见:https://jingyan.baidu.com/article/a681b0dee8dcae7b19434623.html
2.2 pyw格式
将Python脚本的py扩展名改为pyw后,在windows下双击运行(若需要选择应用打开,选择在Python同目录下,找到pythonw.exe)程序,此时将不会打开终端执行程序。终止程序在任务管理系统查询pythonw,如下所示: