当前位置: 首页 > news >正文

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服务,并有效地在后台运行你的程序!

相关文章:

  • unicode编码和ascii编码的区别
  • EasyCVR全方位安全守护智慧电厂:构建高效视频监控系统优势分析
  • Git大框架总结
  • 公交IC卡收单管理系统 多处 SQL注入致RCE漏洞复现
  • 15 数组——15. 三数之和 ★★
  • 抽象类、比较器和接口
  • 基于Java+VUE+echarts大数据智能道路交通信息统计分析管理系统的设计与实现
  • 在Ubuntu 16.04上安装最新版本的MySQL的方法
  • 基于单片机8路数字电压表电压采集系统
  • 服务器开通个人账户
  • Jenkins: fontconfig head is null, check your fonts or fonts configuration;
  • PostgreSQL的表碎片
  • 从0新建一个微信小程序实现一个简单跳转
  • label标签,for属性与input的id属性相匹配
  • UE(网络)
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • js对象的深浅拷贝
  • MySQL用户中的%到底包不包括localhost?
  • Nacos系列:Nacos的Java SDK使用
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • spring + angular 实现导出excel
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 分布式熔断降级平台aegis
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 算法---两个栈实现一个队列
  • 想写好前端,先练好内功
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ###C语言程序设计-----C语言学习(6)#
  • #pragma预处理命令
  • #每日一题合集#牛客JZ23-JZ33
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (4.10~4.16)
  • (CPU/GPU)粒子继承贴图颜色发射
  • (Git) gitignore基础使用
  • (libusb) usb口自动刷新
  • (PADS学习)第二章:原理图绘制 第一部分
  • (python)数据结构---字典
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (十一)图像的罗伯特梯度锐化
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)一些感悟
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • ..回顾17,展望18
  • .bat文件调用java类的main方法
  • .cn根服务器被攻击之后
  • .java 9 找不到符号_java找不到符号
  • .NET C# 操作Neo4j图数据库
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET设计模式(11):组合模式(Composite Pattern)