- Typesrcipt泛型约束详细解读
黑码小帅
自己总结前端javascriptvue.jstypescriptvuejqueryreact.js
代码示例://如果我们直接对一个泛型参数取length属性,会报错,因为这个泛型根本就不知道它有这个属性(()=>{//定义一个接口,用来约束将来的某个类型中必须要有length这个属性interfaceILength{//接口中有一个属性lengthlength:number}functiongetLength(x:T):number{returnx.length}console.log(get
- tcp/ip协议和ip协议,tcp/ip协议 ip协议
zzyh123456
tcp/ip网络智能路由器
TCP/IP协议和IP协议在网络通信中扮演着重要的角色,它们之间既有联系又有区别。以下是对两者的详细解释:TCP/IP协议定义:TCP/IP协议(TransmissionControlProtocol/InternetProtocol)是网络通信协议的一种,也被称为“Internet协议”,是Internet上运行的基本协议,是Internet上使用的最为广泛的协议。它定义了电子设备如何连入因特网
- tcp/ip协议中ip层协议,tcp/ip协议中ip协议属于
zzyh123456
tcp/ip网络网络协议
在TCP/IP协议栈中,IP(InternetProtocol)协议属于网络层(NetworkLayer)。TCP/IP协议栈是一个四层架构,从上到下依次为:应用层(ApplicationLayer):这一层提供了应用程序间通信的接口,如HTTP、FTP、SMTP等协议都在这一层。传输层(TransportLayer):这一层负责应用程序之间的数据传输,包括面向连接的TCP(Transmissio
- MongoDB aggregate学习
mongodbsqljava
MongoDB中的aggregate主要用于数据统计平均值,求和等,并返回计算后的数据结果,有点类似sql语句中的count,sum,avg功能。一些表达式及对应功能:表达式功能$sum计算总和$avg计算平均值$min获取集合文档中最小值$max获取集合文档中最大值$push在集合文档中插入值到一个数组中$pull在集合文档中删除指定的值$addToSet在集合文档中插入值到一个数组中,如果之前
- GO语言 链表(单向链表
徐小黑ACG
链表数据结构
链表的前提GO语言的链表类似于C语言的链表,它通过结构体和结构体指针实现。结构体GO语言定义结构体如下typeuserstruct{namestringageintnext*user}结构体指针结构体指针就是指向结构体的指针,我们在链表中会用到结构体指针实现链表节点之间的连接next*user就是结构体指针构建链表构建链表需要三点:头节点,尾节点,中间节点头节点的作用相当于链表的入口,尾节点用来表
- go语言基础^-^ (1)
徐小黑ACG
golang
大家好,我是练习时长两天半的个人练习生。变量定义var name type var name type =值var name =值(自动判断类型name:=值(全局变量定义的时候不可以这样常量定义:const name type=值变量类型:变量类型包括但不限于,int,float,string,bool等类型go的输入输出需要提前导入包import"fmt"输出:fmt.Pr
- 超强、超详细Redis入门教程:从基础到实战!
喵手
数据库redis数据库缓存
全文目录:开篇语前言:Redis——现代应用的灵魂目录什么是Redis?Redis的常见应用场景Redis的安装与环境配置1.Linux环境下安装2.MacOS环境下安装3.Windows环境下安装Redis核心数据结构剖析字符串(String)哈希(Hash)列表(List)️集合(Set)与有序集合(SortedSet)⚙️Redis的持久化机制Redis的高可用架构(主从复制与哨兵模式)Re
- js常用函数整理
代码简单说
javascriptVue3源码解析javascriptjs函数函数整理
常用函数获取十六进制随机颜色functiongetRandomColor(){return'#'+(function(h){returnne
- 利用IDEA反编译jar包
star9595
Java实用技能
有时使用jd-gui进行反编译不太靠谱,可以通过idea反编译方式,两者进行对比:1.利用IDEA反编译jar包(idea需要安装插件JavaBytecodeDecomplier)2.在需要编译的jar包的目录下,打开命令行界面,输入以下命令:java-cp"D:/ProgramFiles/JetBrains/IntelliJIDEA2019.1.3/plugins/java-decompiler
- 系统架构设计中的非功能需求分析与设计
Evaporator Core
系统架构设计师OraclePython开发经验系统架构需求分析
引言在系统架构设计中,非功能需求(Non-FunctionalRequirements,NFRs)与功能需求同样重要。非功能需求定义了系统的质量属性,如性能、可用性、安全性、可扩展性等。这些需求虽然不直接描述系统的功能,但它们对系统的成功与否起着决定性作用。本文将深入探讨非功能需求的分析与设计方法,帮助读者理解如何在系统架构设计中有效地处理非功能需求。第一章:非功能需求的分类与重要性非功能需求通常
- 使用 PyTorch 实现逻辑回归:从数据到模型保存与加载
弥树子
pytorch逻辑回归人工智能
在机器学习中,逻辑回归是一种经典的分类算法,广泛应用于二分类问题。本文将通过一个简单的示例,展示如何使用PyTorch框架实现逻辑回归模型,从数据准备到模型训练、保存和加载,最后进行预测。1.数据准备逻辑回归的核心是通过学习数据中的特征与标签之间的关系来进行分类。在本示例中,我们手动创建了一个简单的二维数据集,包含两类数据点。第一类数据点的标签为0,第二类数据点的标签为1。class1_point
- [网络通信原理]——OSI模型与TCP/IP模型
牛逼的路上跑了一半
计算机网络tcp/ip网络网络协议运维语言模型
前言在计算机网络领域中,OSI7层模型和TCP/IP模型是两个重要的概念。本文将对这两个模型进行介绍和比较,让大家了解它们的区别和联系。OSI模型与TCP/IP模型前言一、OSI模型1、OSI模型是什么?2、OSI七层模型二、TCP/IP模型三、OSI七层模型与TCP/IP模型的区别总结一、OSI模型1、OSI模型是什么?OSI(OpenSystemInterconnection)参考模型是国际标
- 3.3 Go函数可变参数
行路见知
Golanggolang开发语言
可变参数(variadicparameters)是一种允许函数接受任意数量参数的机制。它在函数定义中使用...type来声明参数类型,所有传递的参数会被收集为一个切片,函数内部可以像操作普通切片一样处理这些参数。packagemainimport"fmt"funct1(ints...int){//可变参数使用方法}/*funct2(ints...int,sstring,iint)int{//错误,
- idea反编译jar包与修改jar包的简单方法
追逐梦想永不停
2020.4——
一、使用场景当需要修改某个jar包中的某个文件中的某段代码时,可以使用本方法。例如:优化jar包中的代码逻辑、新增jar包的代码逻辑、修改jar包中的加解密与校验方法等。二、特点仅对某个jar包的某个文件的某段代码进行了修改,不影响jar包其它功能的正常使用。只需要jar包就能完成修改,不需要源代码。三、使用方法1.使用IntelliJIDEA打开某个项目,点击左侧栏下的ExternalLibra
- ACM寒假集训专题二总结
欢迎来到Anon Tokyo的世界
c++算法
噩梦般的二分法Easy1:#includeusingnamespacestd;intmain(){intn;cin>>n;intgroup[100000];for(inti=0;i>a;group[i]=a;}intq,x,ans,mid;cin>>q;intright=n-1;intleft=0;for(intj=0;j>x;while(right>=left){mid=(right+left)
- javax.validation.constraints.NotNull找不到
大叔是90后大叔
springbootJavajavaspringboot
javax.validation.constraints.NotNull找不到javax.validation.constraints.NotNull找不到使用范例附录javax.validation.constraints.NotNull找不到解决方案:需要在pom.xml中引入依赖org.springframework.bootspring-boot-starter-validation使用范
- C++11新特性之连续右尖括号(>>)改进
画个逗号给明天"
c++开发语言
1.介绍在C++11之前的泛型编程中,模版实例化有个很繁琐的地方,那就是连续右尖括号(>>)会被编译器解释为右移操作符,而不是模版参数表的结束。例如:templatestructFun{typedefTtype;};templateclassA{...};intmain(void){Fun>::typexx;//编译出错return0;}这种嵌套模版在编译过程中会出现错误,因为不支持Fun>这种写
- mkdoc处理多级目录生成mkdocs.yml
爱吃瓜的猹z
pythonpython开发语言
#NOTE:Shouldexecutethisscriptinthemy-wikiimportosimportyamlDOC_PATH="docs"SITE_PATH="site"NOTE_PATH="docs/NOTE"CONFIG_PATH=os.getcwd()YML_LOCTION=os.path.join(CONFIG_PATH,"mkdocs.yml")header_config={'
- element-plus select 滚动加载更多
日积一沙
javascript
思路:监听select下拉面板的滚动事件,滚动到底部时,调用接口加载更多数据一、自定义指令importtype{Directive,DirectiveBinding}from"vue";interfaceElTypeextendsHTMLElement{copyData:string|number;__handleClick__:any;}constloadmore:Directive={moun
- 【python】python如何收邮件呢
kakaZhui
pythongithub
在Python中监测并接收邮件通常使用imaplib库,它实现了IMAP4rev1协议(InternetMessageAccessProtocolversion4revision1)。以下是使用imaplib监测并接收邮件的一般步骤:连接到IMAP服务器:使用imaplib连接到你的邮箱的IMAP服务器。登录邮箱账户:使用你的邮箱地址和密码进行登录。选择邮箱文件夹:通常情况下,你需要选择“收件箱”
- 【llm对话系统】Gradio快问快答
kakaZhui
chatgpt人工智能AIGC自然语言处理
从问题出发1.gr.Textbox如何显示一个默认文本``pythonimportgradioasgrdefgreet(name):return"Hello"+name+“!”demo=gr.Interface(fn=greet,inputs=gr.Textbox(value=“请输入你的名字”,label=“姓名”),outputs=“text”)demo.launch()###2.如何隐藏一个
- Redis的优缺点
zhanghaiyang0011
redisredis
优点:速度快,完全基于内存,使用C语言实现丰富的数据类型,Redis有8种数据类型,当然常用的主要是String、Hash、List、Set、SortSet这5种类型支持事务,Redis的所有操作都是原子性的支持主从复制可以进行读写分离缺点:由于Redis是内存数据库,短时间内大量增加数据,可能导致内存不够用数据库容量受到物理内存的限制,不能用作海量数据的高性能读写Redis较难支持在线扩容red
- Redis的单线程架构
ら.二十一
Redis
Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务。这里通过多个客户端命令调用的例子说明Redis单线程命令处理机制,接着分析Redis单线程模型为什么性能如此之高,最终给出为什么理解单线程模型是使用和运维Redis的关键。开启三个redis-cli客户端同时执行命令客户端1设置一个字符串键值对:127.0.0.1:6379>sethelloworld客户端2对counte
- python中的try能嵌套吗_聊聊python中的异常嵌套
weixin_39565390
python中的try能嵌套吗
在Python中,异常也可以嵌套,当内层代码出现异常时,指定异常类型与实际类型不符时,则向外传,如果与外面的指定类型符合,则异常被处理,直至最外层,运用默认处理方法进行处理,即停止程序,并抛出异常信息。如下代码:try:try:raiseIndexErrorexceptTypeError:print('gethandled')exceptSyntaxError:print('ok')运行程序:Tr
- 【Python】查看txt文件的字符编码方式
zhangbin_237
python开发语言自然语言处理
Python中,可以使用chardet库来查看特定txt文件的编码格式:withopen('test.txt','rb')asf:cont=f.read()encoding=chardet.detect(cont)['encoding']print(encoding)
- string
刃神太酷啦
蓝桥杯C++组
stringC语言中一整个字符串是用字符数组才能表示出来,不能chars="abcd";getline在C语言和C++中的用法不一样,头文件也不一样size_t是一种无符号整数类型(在C和C++均一样)C和C++中的内置类型(比如:long)一定满足所有同类型的关系运算而像string这种就不一定a>b>c和a>b&&b>c区分a>b+1和a>(b+1)是一样的eg:string&是C++中的引用
- 华为GRE VPN配置实验
qq_41051736
华为服务器网络
#配置南京总部路由器AR2sysynanjingdhcpenableacl2000rule1premitsou192.168.10.00.0.0.255intg0/0/1ipadd192.168.10.25424dhcpselecintintg0/0/0ipadd12.0.0.124natoutbound2000iproute-s0.0.0.0012.0.0.2iproute-s192.168.2
- 均值(信息学奥赛一本通-1060)
Doopny@
信息学奥赛一本通算法
【题目描述】给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。【输入】输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。【输出】输出一行,包含一个浮点数,表示均值,精确到小数点后4位。【输入样例】21.03.0【输出样例】2.0000【题解代码】#includeusingnamespacestd;intma
- 人设崩塌还是对行业心寒?ZachXBT:这么多年终究是错付了
区块链web3安全
作者:Techub热点速递撰文:Yangz,TechubNews继特朗普夫妇先后发行个人MemecoinTRUMP及MELANIA后,关于名人Memecoin的故事还在继续。昨日,备受行业拥趸的链上侦探ZachXBT在收到社区用户创建的同名Memecoin的50%供应并疑似通过OTC卖出16348枚SOL获利约389万美元后,受到诸多非议。一方面,不少投资者直呼ZachXBT通过类似TRUMP的形
- 几个适合Java开发者的免费IDEA插件
java后端
今天,给大家推荐几个好用且免费的IntelliJIDEA插件。如果你还没有用过,可以尝试一下,也许对你的日常工作会有一定的效率提升噢!RestFulTool如果你是一个RESTful服务的开发者,那么这个一定要试一下。它是一套非常丰富的RESTful服务开发工具,对SpringMVC和SpringBoot支持也是非常友好,开发者可以直接通过插件找到自己编写的RESTful接口:同时也能非常方便的进
- 多线程编程之理财
周凡杨
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