- 第47章 Python uWSGI 安装配置教程
你得不到的念想
Pythonpython开发语言linux
本文主要介绍如何部署简单的WSGI应用和常见的Web框架。以Ubuntu/Debian为例,先install依赖包:apt-getinstallbuild-essentialpython-devPythoninstalluWSGI1、通过pip命令:pipinstalluwsgi2、downloadinstall脚本:curlhttp://uwsgi.it/install|bash-sdefaul
- 穿越虚拟边界:VirtualBox NAT 网络探秘与技术解析
109702008
网络运维网络运维人工智能
摘要:本文通过用户与AI助手的真实技术对话,系统解析VirtualBox的NAT网络模式工作原理,揭示主机与虚拟机通信受阻的根本原因,并提供三种实用解决方案。同时深入剖析网络地址转换(NAT)技术的核心机制与时代意义。一、问题起源:为何主机无法Ping通NAT模式的虚拟机?用户在使用VirtualBox时发现:虚拟机网络配置为NAT(网络地址转换)模式虚拟机内ipa显示IP地址为10.0.2.15
- Spring Boot 事务中 rollbackFor = Exception.class 的实现解析
nextera-void
事务异常springbootjava数据库
我们常常在事务注解中,定义rollbackFor为事务定义异常的类型。@Transactional(rollbackFor=Exception.class)publicResultupdateArticle(LongarticleId,ArticleCreateRequestrequest) //TODOcode.}Spring(6.2.7)一、实现逻辑类(RuleBasedTransactio
- web 系统对接钉钉三方登录完整步骤实战使用示例
Web系统对接钉钉三方登录完整步骤实战以下是基于OAuth2.0授权码模式的完整对接流程(以扫码登录为例):一、准备工作注册钉钉开发者账号钉钉开放平台→创建企业内部应用(或第三方应用)记录AppKey和AppSecret配置回调域名(如https://yourdomain.com/callback)授权权限在应用权限中开启成员信息读权限(auth/user)二、前端实现:生成登录二维码window
- web 系统对接飞书三方登录完整步骤实战使用示例
慧一居士
架构总结架构系统架构
下面我将详细说明Web系统对接飞书三方登录的完整步骤,并提供实战示例(基于Node.js/Express):一、完整对接流程注册飞书开放平台应用登录飞书开放平台创建企业自建应用→获取AppID和AppSecret配置安全域名和重定向URL(如https://yourdomain.com/auth/feishu/callback)OAuth2.0授权流程sequenceDiagram用户->>你的应
- [netty5: LifecycleTracer & ResourceSupport]-源码分析
idolyXyz
netty5-源码阅读nettynetty-buffer
LifecycleTracer@UnstableApipublicabstractclassLifecycleTracer{//默认关闭staticfinalbooleanlifecycleTracingEnabled=SystemPropertyUtil.getBoolean("io.netty5.buffer.lifecycleTracingEnabled",false);//重点!publi
- Spring事务失效的八大核心原因与深度解析
fjkxyl
spring数据库网络
一、事务失效的本质原理Spring事务管理基于动态代理机制实现,通过AOP拦截带有@Transactional注解的方法,在方法执行前后开启/提交事务。当代理链路被破坏或事务控制要素缺失时,就会导致事务失效。图1展示了正常事务拦截流程:客户端事务代理目标对象数据库方法调用begintransaction调用实际方法执行SQL返回结果commitrollbackalt[执行成功][执行失败]最终响应
- MyBatis-Plus中慎用@Transactional注解
liu-微粒
mybatisjava开发语言
下面代码中:@ServicepublicclassAddressService{@AutowiredAddressMapperaddressMapper;@Transactional(rollbackFor=Exception.class)publicvoiderrorInvoker(Addressaddress){addressMapper.insert(address);}}在Service中
- @Transactional事务注解的批量回滚机制
TTc_
java事务
关键机制说明:1.事务注解生效:@Transactional(rollbackFor=Exception.class)@Override@Transactional(rollbackFor=Exception.class)publicBooleansaveUser(UserDTOuserDto){SysUsersysUser=newSysUser();BeanUtils.copyPropertie
- LangChain核心架构深度解析
北辰alk
AIlangchain架构microsoft
文章目录一、分层架构概览二、核心架构组件详解1.模型I/O层(ModelI/O)2.数据连接层(DataConnection)3.链与代理层(Chains&Agents)链式工作流动态代理系统4.记忆系统(Memory)5.回调系统(Callbacks)三、运行时架构1.同步/异步执行流2.分布式执行模式四、扩展架构1.工具集成架构2.企业级扩展五、关键设计模式1.LCEL(LangChainEx
- Visual Studio和Visual Studio Code适用于哪些编程语言
VisualStudio和VisualStudioCode都适用于多种编程语言,它们的适用编程语言如下:VisualStudio适用于:C#VisualBasic.NETF#C++JavaScriptTypeScriptPythonHTML/CSSJava(通过插件支持)VisualStudioCode适用于:C#VisualBasic.NETF#C++JavaScriptTypeScriptPy
- 使用Gemini实现AI驱动UI自动化测试
测试AI自动化测试
安装依赖pipinstallbrowser-uselangchain-google-genaipydantic编写代码#coding=utf-8importasyncioimportosfrombrowser_use.agent.serviceimportAgentfromlangchain_google_genaiimportChatGoogleGenerativeAIfrompydantici
- OpenGL 2. 着色器
灿烂阳光g
c++开发语言OpenGL
#include#include#include#include//函数声明voidframebuffer_size_callback(GLFWwindow*window,intwidth,intheight);voidprocessInput(GLFWwindow*window);voidcheckShaderCompileStatus(unsignedintshader,conststd::s
- 量子计算的数学地基:解码希尔伯特空间的魔法
牧之112
量子计算
在科技圈,“量子计算”早已不是陌生的名词。从谷歌的“量子霸权”实验到IBM的量子云服务,从药物研发的分子模拟到密码学的革命性突破,量子计算正以颠覆式的姿态重塑着人类对计算的认知。但在这些令人惊叹的应用背后,藏着一个关键的数学基石——希尔伯特空间(HilbertSpace)。它像一片隐形的“量子舞台”,支撑着量子比特的叠加、纠缠与计算,是理解量子计算本质绕不开的概念。一、从“普通空间”到“量子空间”
- Three.js 实现导出模型文件(.glb,.gltf)功能 GLTFExporter
Three.js提供了导出(.glb,.gltf)文件的APIGLTFExporter用于实现场景内容导出模型文件的功能导出模型文件主要使用parse方法,该方法接收三个参数:1.scene:要导出的场景对象。2.onComplete:解析完成后的回调函数,接收一个参数result,表示解析后的glTF数据。3.options:可选参数,用于配置导出的选项。下面是options的一些常用参数选项:
- Android四大组件:Broadcast
giaoho
安卓开发学习android
Android四大组件:Broadcast-1.标准广播(Normalbroadcasts)执行特性:完全异步,广播发出后,所有接收器几乎同时接收,无先后顺序。效率与拦截:效率高,但无法被截断。流程:发出广播后,多个接收器同时接收,中“发出广播”向“广播接收器1、2、3”同时传递。有序广播(Orderedbroadcasts)执行特性:同步执行,同一时刻仅一个接收器接收,执行完逻辑后广播才继续传递
- 2024 年最新 Protobuf 结构化数据序列化和反序列化详细教程
唤醒手腕
网络爬虫技术详细教程网络协议
Protobuf序列化概述Protobuf(ProtocolBuffers)是由Google开发的一种语言中立、平台中立、可扩展的序列化结构数据的方法。它用于在不同系统之间高效地交换数据。Protobuf使用定义文件(.proto)来描述数据结构,并通过编译生成特定语言的代码。它的优点包括小巧的二进制格式、高效的序列化速度和向后兼容性,非常适合需要高性能和跨语言的应用场景。常见序列化格式序列化格式
- Java WEB技术-什么是循环依赖?常用解决循环依赖的方法有哪些?(Spring三级缓存,@Lazy注解,设计修改,依赖解耦等)
weisian151
java杂货铺java开发语言spring
1、什么是循环依赖环依赖指的是多个对象之间相互依赖,形成一个依赖的闭环。例如:类A依赖于类B。类B又依赖于类A。循环依赖代码示例:@ComponentpublicclassBeanA{privatefinalBeanBbeanB;@AutowiredpublicBeanA(BeanBbeanB){this.beanB=beanB;}}@ComponentpublicclassBeanB{priva
- Google AI 刚刚开源 MCP 数据库工具箱,让 AI 代理安全高效地查询数据库
新加坡内哥谈技术
人工智能
每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https://rengongzhineng.io/https://github.com/googleapis/genai-toolboxG
- Cesium billboard 实现动态效果
swift1224L
Cesium前端开发语言webgl
Cesiumbillboard实现动态效果自转、跳动、闪烁、旋转等动态效果加载GIF自转、跳动、闪烁、旋转等动态效果/***利用BillboardGraphics的scale、rotation、width、position属性和和CallbackProperty实现动态改变entitybillboard*/loadDynamicBillboardByEntity(viewer:Cesium.Vie
- 零基础 Qt 6 在线安装教程
程序员乐逍遥
Qt框架MFC框架高级编程qt开发语言qt6C++安装
1.首先给你们Qt5.14.2的安装地址,有需要的可以安装Indexof/archive/qt/5.14/5.14.22.首先下载Qt6的在线安装包https://d13lb3tujbc8s0.cloudfront.net/onlineinstallers/qt-online-installer-windows-x64-4.10.0.exe3.安装运行程序
- 毕业论文 | 人工智能侵权责任法律问题研究——以无人驾驶汽车为例
北斗猿
毕业论文设计人工智能无人驾驶法律侵权责任法民法典
===========================================github:https://github.com/MichaelBeechanCSDN:https://blog.csdn.net/u011344545===========================================人工智能侵权责任法律问题研究——以无人驾驶汽车为例目录摘要一、绪论(一)课
- Linux 基础入门操作 第十四章 .U-Boot 编译 1
1U-Bboot编译1.1UBOOT介绍U-Boot,全称UniversalBootLoader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌
- 如何设计高可用容灾架构?
深山技术宅
素养PHP经验架构
设计高可用容灾架构需遵循分级冗余、自动故障转移、数据零丢失原则,通过多层次防御体系保障业务连续性。以下为经过亿级流量验证的架构方案及实施步骤:一、全局容灾架构拓扑graphTBsubgraphRegionA[主地域-上海]AZ1[可用区A]-->LB1[SLB负载均衡]AZ2[可用区B]-->LB1LB1-->App1[应用集群]App1-->DB1[(MySQLMGR组)]App1-->Cach
- 如何调用dify工作流api,代码格式如下
importrequestsimportjson#API配置api_url="http://localhost:8082/v1/workflows/run"api_key="app-6Ef8WnCL1rB4oMtvPgaLBSJy"#请求头headers={ 'Authorization':f'Bearer{api_key}', 'Content-Type':'application/json
- AI初学者如何对大模型进行微调?——零基础保姆级实战指南
仅需8GB显存,三步完成个人专属大模型训练四步实战:从环境配置到模型发布步骤1:云端环境搭建(10分钟)推荐使用阿里魔塔ModelScope免费GPU资源:#注册后执行环境初始化pip3install--upgradepippip3installbitsandbytes>=0.39.0gitclone--depth1https://github.com/hiyouga/LLaMA-Factory.
- Android 10 Gnss数据流程
TinyKey
android
Android10Gnss数据流程一、LocationManager数据成员:GnssMeasurementCallbackTransport:高精度定位数据回调对象的封装,回调对象为GnssMeasurementsEvent.Callback,传递的对象为是GnssMeasurement,包含单颗GNSS卫星的原始观测值(如伪距、载波相位、多普勒频移)及计算参数(卫星ID、信号强度、时间戳等),
- spring cloud负载均衡之FeignBlockingLoadBalancerClient、BlockingLoadBalancerClient
万物皆字节
SpringCloud源码分析springcloud
本文主要分析被@FeignClient注解的接口类请求过程中负载均衡逻辑,流程分析使用的源码版本信息如下:3.2.12023.0.0背景平常我们代码里用@FeignClien注解一个接口类,实现一个远程接口(如下)@FeignClient(name=ServiceNameConstants.XXX,fallbackFactory=XXXFactory.class)publicinterfaceRe
- python-26-回调函数用法和基于python发送邮件
皮皮冰燃
python3python
文章目录1什么是回调函数?1.1回调函数1.2回调函数的来源2回调示例2.1示例一2.1.1even.py2.1.2callback_demo.py2.2示例二2.2.1普通函数调用2.2.2回调函数2.3中间函数的调用者3QQ邮箱3.1POP3用于收取邮件3.2IMAP用于收取邮件3.3SMTP用于发送邮件3.4python发送邮件4参考附录1什么是回调函数?1.1回调函数回调函数就是一个被作为
- Solidity——什么是低级调用(low-level calls)和操作码的内联汇编
这是Solidity高级开发中很重要的两个概念,通常用于:精细控制合约行为(比如合约间通信、控制gas、避免fallback限制)编写高性能或底层逻辑的合约(例如代理合约、MEV、Gas优化等)我们逐一讲清楚:✅一、什么是低级调用(Low-levelcalls)Solidity提供了几种**“低级”函数调用方式**,用于替代标准的函数调用。这些函数更原始、更灵活,但使用不当容易出bug(比如失败不
- 多线程编程之理财
周凡杨
java多线程生产者消费者理财
现实生活中,我们一边工作,一边消费,正常情况下会把多余的钱存起来,比如存到余额宝,还可以多挣点钱,现在就有这个情况:我每月可以发工资20000万元 (暂定每月的1号),每月消费5000(租房+生活费)元(暂定每月的1号),其中租金是大头占90%,交房租的方式可以选择(一月一交,两月一交、三月一交),理财:1万元存余额宝一天可以赚1元钱,
- [Zookeeper学习笔记之三]Zookeeper会话超时机制
bit1129
zookeeper
首先,会话超时是由Zookeeper服务端通知客户端会话已经超时,客户端不能自行决定会话已经超时,不过客户端可以通过调用Zookeeper.close()主动的发起会话结束请求,如下的代码输出内容
Created /zoo-739160015
CONNECTEDCONNECTED
.............CONNECTEDCONNECTED
CONNECTEDCLOSEDCLOSED
- SecureCRT快捷键
daizj
secureCRT快捷键
ctrl + a : 移动光标到行首ctrl + e :移动光标到行尾crtl + b: 光标前移1个字符crtl + f: 光标后移1个字符crtl + h : 删除光标之前的一个字符ctrl + d :删除光标之后的一个字符crtl + k :删除光标到行尾所有字符crtl + u : 删除光标至行首所有字符crtl + w: 删除光标至行首
- Java 子类与父类这间的转换
周凡杨
java 父类与子类的转换
最近同事调的一个服务报错,查看后是日期之间转换出的问题。代码里是把 java.sql.Date 类型的对象 强制转换为 java.sql.Timestamp 类型的对象。报java.lang.ClassCastException。
代码:
- 可视化swing界面编辑
朱辉辉33
eclipseswing
今天发现了一个WindowBuilder插件,功能好强大,啊哈哈,从此告别手动编辑swing界面代码,直接像VB那样编辑界面,代码会自动生成。
首先在Eclipse中点击help,选择Install New Software,然后在Work with中输入WindowBui
- web报表工具FineReport常用函数的用法总结(文本函数)
老A不折腾
finereportweb报表工具报表软件java报表
文本函数
CHAR
CHAR(number):根据指定数字返回对应的字符。CHAR函数可将计算机其他类型的数字代码转换为字符。
Number:用于指定字符的数字,介于1Number:用于指定字符的数字,介于165535之间(包括1和65535)。
示例:
CHAR(88)等于“X”。
CHAR(45)等于“-”。
CODE
CODE(text):计算文本串中第一个字
- mysql安装出错
林鹤霄
mysql安装
[root@localhost ~]# rpm -ivh MySQL-server-5.5.24-1.linux2.6.x86_64.rpm Preparing... #####################
- linux下编译libuv
aigo
libuv
下载最新版本的libuv源码,解压后执行:
./autogen.sh
这时会提醒找不到automake命令,通过一下命令执行安装(redhat系用yum,Debian系用apt-get):
# yum -y install automake
# yum -y install libtool
如果提示错误:make: *** No targe
- 中国行政区数据及三级联动菜单
alxw4616
近期做项目需要三级联动菜单,上网查了半天竟然没有发现一个能直接用的!
呵呵,都要自己填数据....我了个去这东西麻烦就麻烦的数据上.
哎,自己没办法动手写吧.
现将这些数据共享出了,以方便大家.嗯,代码也可以直接使用
文件说明
lib\area.sql -- 县及县以上行政区划分代码(截止2013年8月31日)来源:国家统计局 发布时间:2014-01-17 15:0
- 哈夫曼加密文件
百合不是茶
哈夫曼压缩哈夫曼加密二叉树
在上一篇介绍过哈夫曼编码的基础知识,下面就直接介绍使用哈夫曼编码怎么来做文件加密或者压缩与解压的软件,对于新手来是有点难度的,主要还是要理清楚步骤;
加密步骤:
1,统计文件中字节出现的次数,作为权值
2,创建节点和哈夫曼树
3,得到每个子节点01串
4,使用哈夫曼编码表示每个字节
- JDK1.5 Cyclicbarrier实例
bijian1013
javathreadjava多线程Cyclicbarrier
CyclicBarrier类
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环的 barrier。
CyclicBarrier支持一个可选的 Runnable 命令,
- 九项重要的职业规划
bijian1013
工作学习
一. 学习的步伐不停止 古人说,活到老,学到老。终身学习应该是您的座右铭。 世界在不断变化,每个人都在寻找各自的事业途径。 您只有保证了足够的技能储
- 【Java范型四】范型方法
bit1129
java
范型参数不仅仅可以用于类型的声明上,例如
package com.tom.lang.generics;
import java.util.List;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value =
- 【Hadoop十三】HDFS Java API基本操作
bit1129
hadoop
package com.examples.hadoop;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoo
- ua实现split字符串分隔
ronin47
lua split
LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或 C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样。LUA只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从 而适合嵌入在别的程序里。因此在lua中并没有其他语言那样多的系统函数。习惯了其他语言的字符串分割函
- java-从先序遍历和中序遍历重建二叉树
bylijinnan
java
public class BuildTreePreOrderInOrder {
/**
* Build Binary Tree from PreOrder and InOrder
* _______7______
/ \
__10__ ___2
/ \ /
4
- openfire开发指南《连接和登陆》
开窍的石头
openfire开发指南smack
第一步
官网下载smack.jar包
下载地址:http://www.igniterealtime.org/downloads/index.jsp#smack
第二步
把smack里边的jar导入你新建的java项目中
开始编写smack连接openfire代码
p
- [移动通讯]手机后盖应该按需要能够随时开启
comsci
移动
看到新的手机,很多由金属材质做的外壳,内存和闪存容量越来越大,CPU速度越来越快,对于这些改进,我们非常高兴,也非常欢迎
但是,对于手机的新设计,有几点我们也要注意
第一:手机的后盖应该能够被用户自行取下来,手机的电池的可更换性应该是必须保留的设计,
- 20款国外知名的php开源cms系统
cuiyadll
cms
内容管理系统,简称CMS,是一种简易的发布和管理新闻的程序。用户可以在后端管理系统中发布,编辑和删除文章,即使您不需要懂得HTML和其他脚本语言,这就是CMS的优点。
在这里我决定介绍20款目前国外市面上最流行的开源的PHP内容管理系统,以便没有PHP知识的读者也可以通过国外内容管理系统建立自己的网站。
1. Wordpress
WordPress的是一个功能强大且易于使用的内容管
- Java生成全局唯一标识符
darrenzhu
javauuiduniqueidentifierid
How to generate a globally unique identifier in Java
http://stackoverflow.com/questions/21536572/generate-unique-id-in-java-to-label-groups-of-related-entries-in-a-log
http://stackoverflow
- php安装模块检测是否已安装过, 使用的SQL语句
dcj3sjt126com
sql
SHOW [FULL] TABLES [FROM db_name] [LIKE 'pattern']
SHOW TABLES列举了给定数据库中的非TEMPORARY表。您也可以使用mysqlshow db_name命令得到此清单。
本命令也列举数据库中的其它视图。支持FULL修改符,这样SHOW FULL TABLES就可以显示第二个输出列。对于一个表,第二列的值为BASE T
- 5天学会一种 web 开发框架
dcj3sjt126com
Web框架framework
web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的经验写了一个to do list,按照这个清单,一条一条的学习,事半功倍,很快就能掌握 一共25条,即便很磨蹭,2小时也能搞定一条,25*2=50。只需要50小时就能掌握任意一种web框架
各类web框架大同小异:现代web开发框架的6大元素,把握主线,就不会迷路
建议把本文
- Gson使用三(Map集合的处理,一对多处理)
eksliang
jsongsonGson mapGson 集合处理
转载请出自出处:http://eksliang.iteye.com/blog/2175532 一、概述
Map保存的是键值对的形式,Json的格式也是键值对的,所以正常情况下,map跟json之间的转换应当是理所当然的事情。 二、Map参考实例
package com.ickes.json;
import java.lang.refl
- cordova实现“再点击一次退出”效果
gundumw100
android
基本的写法如下:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
//navigator.splashscreen.hide();
document.addEventListener("b
- openldap configuration leaning note
iwindyforest
configuration
hostname // to display the computer name
hostname <changed name> // to change
go to: /etc/sysconfig/network, add/modify HOSTNAME=NEWNAME to change permenately
dont forget to change /etc/hosts
- Nullability and Objective-C
啸笑天
Objective-C
https://developer.apple.com/swift/blog/?id=25
http://www.cocoachina.com/ios/20150601/11989.html
http://blog.csdn.net/zhangao0086/article/details/44409913
http://blog.sunnyxx
- jsp中实现参数隐藏的两种方法
macroli
JavaScriptjsp
在一个JSP页面有一个链接,//确定是一个链接?点击弹出一个页面,需要传给这个页面一些参数。//正常的方法是设置弹出页面的src="***.do?p1=aaa&p2=bbb&p3=ccc"//确定目标URL是Action来处理?但是这样会在页面上看到传过来的参数,可能会不安全。要求实现src="***.do",参数通过其他方法传!//////
- Bootstrap A标签关闭modal并打开新的链接解决方案
qiaolevip
每天进步一点点学习永无止境bootstrap纵观千象
Bootstrap里面的js modal控件使用起来很方便,关闭也很简单。只需添加标签 data-dismiss="modal" 即可。
可是偏偏有时候需要a标签既要关闭modal,有要打开新的链接,尝试多种方法未果。只好使用原始js来控制。
<a href="#/group-buy" class="btn bt
- 二维数组在Java和C中的区别
流淚的芥末
javac二维数组数组
Java代码:
public class test03 {
public static void main(String[] args) {
int[][] a = {{1},{2,3},{4,5,6}};
System.out.println(a[0][1]);
}
}
运行结果:
Exception in thread "mai
- systemctl命令用法
wmlJava
linuxsystemctl
对比表,以 apache / httpd 为例 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service 使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service 检查服务状态 service h