- 用Rust写小程序“Hello,world!“
qq_31163099
rust小程序开发语言
Hello,World!Nowthatyou’veinstalledRust,it’stimetowriteyourfirstRustprogram.(现在你已经安装了Rust,是写你的第一个Rust程序的时候了。)It’straditionalwhenlearninganewlanguagetowritealittleprogramthatprintsthetextHello,world!Tot
- Java 小游戏开发(飞机大战)
听雨★
javaintellijidea
一,模块介绍1.游戏初始化与资源加载模块:图片资源加载:在ShootGame类的静态代码块中,运用ImageIO.read方法从指定资源路径加载游戏所需的各类图片资源,包括精美的游戏背景图、不同样式的飞机图片(英雄飞机、敌机等)、子弹图片等。若在加载过程中出现IOException异常,表明资源加载失败,此时通过JOptionPane弹出详细的错误提示对话框,告知用户“游戏资源加载失败,请检查资源
- MemGPT 项目使用教程
邱弛安
MemGPT项目使用教程项目地址:https://gitcode.com/gh_mirrors/me/MemGPT1.项目的目录结构及介绍MemGPT项目的目录结构如下:MemGPT/├──README.md├──LICENSE├──pyproject.toml├──memgpt/│├──__init__.py│├──core.py│├──utils.py│└──...├──examples/│├
- OpenCV图像旋转90度的最简单方法
时光荏苒-
opencv计算机视觉人工智能OpenCV
OpenCV是一个功能强大的计算机视觉库,提供了许多图像处理和计算机视觉算法。在OpenCV中,图像旋转是一项常见的操作。本文将介绍如何使用OpenCV将图像旋转90度的最简单方法。步骤1:导入OpenCV库在Python中使用OpenCV库需要先导入库。可以使用以下代码导入OpenCV库:importcv2步骤2:读取图像使用OpenCV读取图像需要使用cv2.imread()函数。该函数接受一
- An impassioned circulation of affection ( Codeforces Round 418 (Div. 2) )
BoBoo文睡不醒
acm训练集合暴力枚举dp双指针
Animpassionedcirculationofaffection(CodeforcesRound418(Div.2))Nadeko’sbirthdayisapproaching!Asshedecoratedtheroomfortheparty,alonggarlandofDianthus-shapedpaperpieceswasplacedonaprominentpartofthewall.
- 博客2: JVM类加载机制详解
菜菜小趴菜
java架构师jvmjavac++
博客2:JVM类加载机制详解摘要:本文将深入探讨Java虚拟机(JVM)的类加载机制,包括类加载过程、类加载器类型和双亲委派模型等。JVM类加载机制是Java程序在运行时将字节码加载到内存的过程。理解类加载机制对于熟练使用Java语言及进行性能调优至关重要。本文将从以下几个方面来探讨JVM类加载机制:类加载过程类加载过程可以分为以下五个阶段:a、加载(Loading):加载阶段主要是通过类加载器将
- C# 装箱和拆箱(以及 as ,is)
幻想趾于现实
.NETC#c#开发语言
装箱(Boxing)是指将值类型转换为引用类型的过程拆箱(Unboxing)是将引用类型转换回值类型的过程。inta=1;objectb=a;//装箱objectobj=10;intnum=(int)obj;//拆箱ArrayListlist=newArrayList();list.Add(123);//装箱inti=(int)list[0];//拆箱操作符asis//as将对象转换成引用类型或者
- Alibaba开发规范_编程规约之并发处理:最佳实践与常见陷阱
小小工匠
【开发规范】开发规范并发处理
文章目录引言1.单例对象的线程安全1.1规则1.2解释1.3代码示例正例反例2.线程命名2.1规则2.2解释2.3代码示例正例反例3.线程池的使用3.1规则3.2解释3.3代码示例正例反例4.线程池的创建4.1规则4.2解释4.3代码示例正例反例5.SimpleDateFormat的线程安全5.1规则5.2解释5.3代码示例正例反例6.ThreadLocal的回收6.1规则6.2解释6.3代码示例
- 【os】os.path.join
资源存储库
python笔记python
目录【os】os.path.join函数签名参数返回值特点示例1.拼接文件路径2.自动处理路径分隔符3.忽略多余的分隔符4.绝对路径的优先级5.拼接路径到当前工作目录小结【os】os.path.joinos.path.join是Python标准库os.path模块中的一个函数,用于智能地连接一个或多个路径组件(如文件夹路径或文件名)为一个完整的路径。它根据不同的操作系统(如Windows或类Uni
- 纯Python环境(CPython)的安装与使用
薯仔的土小豆
Pythonpython人工智能数据分析
WhylearnPython?WebandInternetDevelopmentScientificandNumericPythoniswidelyusedinscientificandnumericcomputing:SciPyisacollectionofpackagesformathematics,science,andengineering.Pandasisadataanalysisand
- 更加强大了,这款老牌软件终于回归!
维度哥
系统重装win11系统做电脑系统
经常做系统的人都应该对金狐这个名字不陌生,金狐是一个十分经典的老牌系统维护盘,目前已经走过了16年。这个软件完全免费,而且更新了精品装机维护工具,功能也变得十分强大。金狐系统维护盘核心高效,全能完美这次更新的系统维护盘非常纯净,没有乱七八糟的捆绑广告,大家可以放心使用。本维护盘包含以下组件:1.Windows11PEx64核心版,体积较小,高效多能;2.Windows10PEx64全能版,体积稍大
- Win11无法使用MUMU模拟器的多种解决方法
nntxthml
windows
Win11无法使用MUMU模拟器的多种解决方法在数字化时代,模拟器成为了许多用户在电脑上体验手机应用的重要工具。MUMU模拟器作为其中一款备受欢迎的安卓模拟器,为无数用户提供了便捷的操作体验。然而,随着Windows11(Win11)系统的推出,一些用户遇到了无法在Win11上使用MUMU模拟器的问题。这无疑给那些习惯于在电脑上运行手机应用的用户带来了困扰。本文将详细介绍几种解决Win11无法使用
- 敲黑板!如果使用lighthouse 遇到NO_FCP错误可能是前端安全策略导致的!
测试开发Kevin
性能测试接口测试测试工具性能优化前端
lighthouseNO_FCP使用lighthouse进行前端性能测试时发现一个问题:Thepagedidnotpaintanycontent.Pleaseensureyoukeepthebrowserwindowintheforegroundduringtheloadandtryagain.(NO_FCP)页面截图如下:刚开始以为是自己的lighthouse出了问题,然后找一个其他网页进行性能
- Python中os.path模块的使用详解
幻想世界中的绚丽色彩
python开发语言Python
os.path模块是Python标准库中的一个模块,提供了用于处理文件路径和名称的函数。它是处理操作系统相关的路径的理想选择,无论是在Windows、Linux还是其他操作系统上。本文将详细介绍os.path模块的常用函数及其用法,并提供相应的源代码示例。获取文件名和目录名os.path模块提供了一些函数来获取文件路径的各个部分,如目录名、文件名和扩展名等。importospath='/path/
- Android岗常见40道面试题,面试前必须了解的知识点!!!
2501_90226046
android面试职场和发展
2)Thread普通线程,如果需要有自己的消息队列,需要调用Looper.prepare()创建Looper实例,调用loop()去循环消息。3)HandlerThread是一个带有Looper的线程,在HandleThread的run()方法中调用了Looper.prepare()创建了Looper实例,并调用Looper.loop()开启了Loop循环,循环从消息队列中获取消息并交由Handl
- ROS发行版
虎啸~嘤嘤嘤
机器人自动驾驶人工智能
ROS是一个用于机器人软件开发的灵活框架,它支持多种编程语言,并且其不同的版本(称为“发行版”)提供了不同的特性和兼容性。foxy是ROS2的一个发行版名称。ROS2是ROS的一个新版本,它引入了新的通信机制(如DDS,DataDistributionService)、更好的系统架构和更多的现代编程语言支持(如C++11、Python3等)。foxy是在特定时间点上发布的ROS2的一个版本,它包含
- MySQL存储结构的使用
weixin_30814223
数据库
前言今天公司老大让我做一个MySQL的调研工作,是关于MySQL的存储结构的使用。这里我会通过3个例子来介绍一下MySQL中存储结构的使用过程,以及一些需要注意的点。笔者环境系统:Windows7MySQL:MySQL5.0.96准备工作1.新建两张数据表:student1,student2新建student1DROPTABLEIFEXISTSstudent1;CREATETABLEstudent
- Compilation error org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
布碗
异常处理tomcatintellijmaven
异常信息严重:Compilationerrororg.eclipse.jdt.internal.compiler.classfmt.ClassFormatExceptionatorg.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.(ClassFileReader.java:342)atorg.apache.jasper.compile
- 使用dup2+fgets+printf 实现文件拷贝功能
M_Lin_
linux
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includetypedefstructsockaddr_inaddr_in_t;typede
- Linux安装Python3
培根芝士
PythonLinuxpythonlinux
1.下载python3编译的依赖包yuminstall-ygccpatchlibffi-develpython-develzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel2.安装openssl1.1.xyu
- Rust语言进阶之文件处理:BufReader用法实例(一百零三)
Android系统攻城狮
rust开发语言后端
简介:CSDN博客专家、《Android系统多媒体进阶实战》一书作者新书发布:《Android系统多媒体进阶实战》优质专栏:Audio工程师进阶系列【原创干货持续更新中……】优质专栏:多媒体系统工程师系列【原创干货持续更新中……】优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课人生格言:人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系
- linux下编译安装python3.10亲测可行!
致命扼腕
环境安装服务器使用linuxpython运维
方法简单两部步就可以啦apt-getupdate&&apt-getupgrade-yapt-getinstall-y--no-install-recommendsgccg++makepython3python3-devpython3-pippython3-venvpython3-wheelespeak-nglibsndfile1-dev测试命令行输入python3即可看到安装成功安装python包
- linux 安装python3.7.10
多财多亿,凭亿近人
python随手笔记Python安装编译依赖Linux
apt-getupdateapt-getupgradeaptinstallbuild-essential-yaptinstalllibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-devlibffi-dev-yaptinstallzlib1g-devaptinstallwgetaptinstallopensslaptinstallc
- Linux下安装python3.10.12环境
爱思考的李MAX
linux运维服务器python
安装python3编程环境检查是否安装python3python3-V安装python3依赖sudoyum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibffi-devel下载pyt
- linux 安装python 3.10
处女座_三月
pythonlinux运维服务器
1下载对应的安装包下载地址:https://download.csdn.net/download/weixin_43401380/885196692上传服务器1步骤1:解压文件tar-xzfPython-3.10.13.tgz2步骤2:创建安装目录mkdirlocal3开始安装1安装gcc:你需要安装gcc,这是GNU编译器集合的一部分,用于编译C程序。执行以下命令来安装gcc:sudoaptup
- 全面MFC程序开发手册
北海有座岛
本文还有配套的精品资源,点击获取简介:MFC是微软为Windows应用程序开发提供的C++库,通过面向对象的封装简化了API的使用,便于构建用户界面、数据库和网络通信软件。本参考大全深入解析了MFC的框架结构、核心概念以及关键组成部分,包括文档/视图架构、消息映射、控件与对话框、数据库支持、网络编程、异常处理、国际化和本地化、打印功能、以及DLL支持。这些知识点的熟练掌握对于高效开发高质量Wind
- python修改nginx配置文件_一个修改nginx.conf配置文件的开源工具
潜水小透明
发现一个修改nginx.conf配置文件的python开源工具,挺好用的,分享一下:这个工具可以读取,修改以及删除nginx的配置项,然后重新生成配置文件。这其中保留了大部分原始配置文件格式,有一些会改变;所以不保证新生成的文件格式完全一致,还需要用肉眼比较一下哦。基本用法:frompynginxconfigimportNginxConfignc=NginxConfig()nc.loadf('/e
- K-Lite Codec Pack 是一个广泛使用的音频和视频编解码器(Codec)集合包
byco
音视频视频编解码
概述K-LiteCodecPack是一个广泛使用的音频和视频编解码器(Codec)集合包,它允许Windows用户轻松播放各种多媒体格式文件。自推出以来,K-LiteCodecPack因其广泛的兼容性和用户友好的安装流程而备受欢迎,无论是普通用户还是专业人士都能够从中受益。【原文地址获取下载地址】版本和功能K-LiteCodecPack提供多个版本,以满足不同用户的需求:Basic版:适合需要播放
- React常见面试题(2024最新版)
前端小小王
react.js前端前端框架面试
创建项目npxcreate-react-appmy-app启动项目npmstart目录结构目录/文件名描述README.md项目的自述文件node_modules/项目依赖包存放目录package.json包管理配置文件,记录项目信息和依赖package-lock.json锁定依赖版本,确保跨环境一致性public/公共资源目录public/index.html主HTML文件,React应用将被引
- qt串口readall判断是否读完
找个栗子
开发语言java
在Qt中,可以使用QIODevice的bytesAvailable函数来判断串口是否读取完毕。bytesAvailable函数返回当前可读取的字节数。当bytesAvailable返回0时,表示串口读取完毕。因此,可以在读取串口数据时使用一个循环来判断读取是否结束,示例如下:QSerialPortserialPort;serialPort.setPortName("COM1");serialPor
- 多线程编程之理财
周凡杨
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