Python3自带HTTP服务:轻松开启与后台管理

Python3自带有http服务,可以在服务器,也可以在本地启动,并运行一些常用的网页程序。比如:我们可以把streamlit框架编写的网页放到服务器上,开启http服务,就可以通过网页来调用这个pythont程序了,如下面的单词批量查询工具。我们服务器某个端口上运行这个程序,再通过1panel为这个服务器建立一个反向代理,申请一个免费的证书,就可以通过域名来访问这个python程序了。

下面,我们一起来看看如何开启和使用web服务器。

一、开启Web服务

1. 基本方法

Python 3内置了简单的HTTP服务器,操作非常简便。

如果还没有在服务器上安装python,请自行查询相关资料安装。安装完成后,请按照以下步骤进行:

首先,进入www目录:

cd www 

用python命令,启动HTTP服务器:

python3 -m http.server 

如果是在本地,可以运行以下代码:

启动成功后,你会看到"Serving HTTP on 0.0.0.0 port 8000..."的提示,说明服务已在8000端口启动。

2. 后台运行服务

如果希望将服务放在后台运行,可以在命令后加上&,这样按Ctrl+C也不会关闭服务:

python3 -m http.server & 

为了确保服务不会被挂起,可以使用nohup命令:

nohup python3 -m http.server 8001 & 

二、指定端口

如果想使用其他端口,只需在命令中最后,附加端口号,例如:

python3 -m http.server 8001 

这样就会在8001端口启动HTTP服务。默认会从8501这个端口开启,如果端口被占用会继续顺延。

三、使用Web服务

访问 http://0.0.0.0:8000/ 可以查看www目录下的网页文件。

如果没有index.html,则会显示目录内容。此外,可以用ifconfig命令查看本机IP并进行访问。

四、nohup后台运行与关闭程序

对于需要长时间运行或输出信息较多的程序,建议使用后台运行并将输出保存到日志中,具体步骤如下:

1. 运行命令

nohup python3 -u test.py > test.log 2>&1 & 

例如,我要在我的服务器上运行一个dic.py的文件,可以cd到py文件所在dict目录运行以下代码:

nohup python3 -m  streamlit run dic.py

2. 按回车键,输入exit命令退出终端

注意:请勿直接关闭终端。

3. 命令解析

&:后台运行程序

nohup:程序不受挂起影响,即使退出服务器,也能后台运行该程序

-u:不启用缓存,实时输出

test.py:要执行的Python文件

test.log:保存输出的日志文件

>:将打印信息重定向到日志文件

2>&1:将标准错误输出重定向到标准输出

五、查看与管理后台程序

你可以使用以下命令查看和管理后台运行的程序:

1. 查看当前终端任务

jobs命令

查看当前终端后台运行的任务,jobs -l 可显示任务PID。

2. 查看所有进程

ps命令:

查看所有进程。使用如下命令:bash

ps -aux | grep "test.py" 

六、结束进程

使用kill命令结束进程的步骤:

通过jobs命令查看任务编号,然后执行:

kill %jobnum 

通过ps命令获取进程号PID,执行:

kill PID 

对于前台运行的程序,可以直接按 Ctrl+C 终止。

这样,你就能轻松地管理Python的HTTP服务,并有效地在后台运行你的程序!

相关推荐
cd小白1 小时前
Linux第二课:LinuxC高级 学习记录day01
linux·c语言·开发语言·学习
wanhengidc2 小时前
手游业务该如何选择服务器?
运维·服务器·网络
Dollhan3 小时前
ARTS-01
python·算法
子午4 小时前
基于Python深度学习【眼疾识别】系统设计与实现+人工智能+机器学习+TensorFlow算法
人工智能·python·深度学习
小馋喵知识杂货铺5 小时前
pytest 截图功能
开发语言·python
kevin_tech6 小时前
Go 项目开发实战-用户Token的刷新、踢人下线和防盗检测
运维·服务器·开发语言·后端·golang
微学AI6 小时前
内网穿透的应用-Ubuntu本地Docker部署Leantime项目管理工具随时随地在线管理项目
linux·ubuntu·docker
MichaelIp7 小时前
LLM大语言模型中RAG切片阶段改进策略
人工智能·python·语言模型·自然语言处理·chatgpt·embedding·word2vec
vvw&7 小时前
如何在 Ubuntu 22.04 上安装 Caddy Web 服务器教程
linux·运维·服务器·前端·ubuntu·web·caddy
likeyou~coucou7 小时前
Linux中SSH服务(二)
linux·运维·ssh