- python+flask实现360全景图和stl等多种格式模型浏览
mosquito_lover1
python
1.安装依赖pipinstallflask2.创建Flask应用创建一个基本的Flask应用,并设置路由来处理不同的文件类型。fromflaskimportFlask,render_template,send_from_directoryapp=Flask(__name__)#设置静态文件路径app.static_folder='static'@app.route('/')defindex():r
- 【Daily Code】leetcode 1287 C++
Shadow10260530
刷题leetcodec++算法
classSolution{public:intfindSpecialInteger(vector&arr){vectorv(100000+10,0);intl=arr.size();for(inti=0;il)returnarr[i];}return-1;}};
- win10快捷键冲突检测与解决方法
H.ZWei
开发工具的那些事快捷键检测快捷键冲突热键冲突
文章目录背景安装与使用背景相信很多人都遇到过,在使用一个快捷键时会经常与其他软件产生冲突,事与愿违;而且又很难找到是与哪个软件产生了冲突。有一款工具可以帮我们定位到目前的快捷键在哪个软件,这样就可以到对应的软件上把这个热键删除或者改成其他,避免热键冲突。安装与使用FindGlobalHotkey下载链接提取码:mxok下载解压即可使用如果需要检查某个快捷键被使用了,直接FindGlobalHotk
- python selenium鼠标点击时、获取元素id_Python+selenium 获取验证信息
weixin_39623271
pythonselenium鼠标点击时获取元素id
获取页面信息1.获取URLurl=driver.current_url2.获取titletitle=driver.title3.获取texttext=driver.find_element_by_xpath("//*[@id='u1']/a[2]").text4.获取浏览器窗口大小size=driver.get_window_size()5.获取定位元素是否被选中,返回布尔值。适用于下拉框(收起状
- 【并查集】
weixin_47868976
python
并查集(DisjointSetUnion,DSU)是一种用于处理不相交集合的数据结构,主要支持两种操作:查找(Find)和合并(Union)。它在解决连通性问题、图论问题以及动态连通性等问题时非常有用。并查集的基础知识基本概念:集合:并查集维护一组不相交的集合,每个集合有一个代表元素。查找(Find):查找某个元素所属的集合的代表元素。合并(Union):将两个集合合并为一个集合。核心思想:路径压
- Find查找某个文件或者文件夹
一只积极向上的小咸鱼
linux运维服务器
在Linux中,find命令既可以查找文件,也可以查找目录。关键区别在于-type选项的不同设置:查找文件:使用-typef查找目录:使用-typed找指定名称的目录find/path/to/search-typed-name"目录名"示例:查找/home目录下名为myfolder的目录find/home-typed-name"myfolder"查找文件如果你只想在某个目录(如/home)中查找,
- Android soong/ui/build/finder.go FindSources源码分析
月盈五
androiduigolang
//FindSourcessearchesforsourcefilesknowntoandwritesthemtothefilesystemfor//uselater.//在一个给定的上下文中,使用配置信息和finder.Finder实例来搜索特定类型的源文件,并将这些文件的路径列表写入到文件系统中,以便后续使用funcFindSources(ctxContext,configConfig,f*f
- C语言每日一练Day03——移除元素
不摸鱼的程序员
『C语言』初阶+进阶c语言算法leetcode学习经验分享
移除元素问题描述解题方案思路一思路二思路三(最优解)总结:问题描述原题链接:https://leetcode.cn/problems/remove-element/解题方案思路一思路一:首先通过简单分析,很明显这是一道顺序表相关问题。首先能够想到的是暴力求解,即思路一:找到所有的val,每次挪动val后的数据覆盖删除val。代码展示:intfind(int*nums,intnumsSize,int
- tar,cat,less,more,head,tail(查看文档),find(根据用户名查找),grep,管道符(|)
智也
红帽课程服务器linux
一、cp复制注意:同一目录下不能出现同名的文件!cp复制的目标路径复制的目的路径cp复制的目标路径复制的目的路径/新的文件名(复制并且重命名)注意点1:cp,命令不能直接对目录进行复制,如果要复制的话,必须加上-r选项。注意点2:mv命令不会改变文件的原属性,但是cp命令在复制时会改变文件的原属性,如果要保留文件的原属性,那么需要使用-p选项-a=-r+-p二、tar打包压缩主命令选项参数打包的作
- Linux 学习路线规划图谱
Morris只会敲命令
linux学习运维
一、学习阶段与目标设定1.基础认知时期(1-2个月)目标:搭建起Linux基础认知架构学习要点:系统安装:在虚拟机里安装Ubuntu22.04或者CentOSStream8。命令行操作:掌握ls、cd、pwd、mkdir等30个基础命令。熟悉grep、awk、sed等文本处理工具。文件系统:了解根目录下各主要目录的功能,像/etc、/var、/usr。学会使用df、du、find等命令进行磁盘管理
- HDU多校2019 第三场 1007(HDU 6609) Find the answer(离散化+树状数组)
沙雕.
2019HDU多校
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6609解题思路:先把给出来的值离散化,对于值相同位置不同的数离散化后的值不相同。两个树状数组,一个维护区间内的和,一个维护区间内的个数。对于每个i二分答案,找到右界之后询问第二个树状数组得到剩余的个数x,那么去掉的就是(i-1)-x代码:(注意行末空格)#include#include#include#
- 【Linux】一万七千字详解 —— 基本指令(二)
安 度 因
Linuxlinux运维服务器centosvim
作者主页:@安度因学习社区:安度因的学习社区专栏链接:Linux文章目录man指令cp指令mv指令echo指令(含输出重定向)cat指令(含输入重定向)wc指令more指令less指令head和tail指令(含管道用法)date指令cal指令sort指令find和which和whereis指令alias指令grep指令top指令zip和unzip指令如果无聊的话,就来逛逛我的博客栈吧!今天的主要内
- git stash pop后 想找到stash 发现被删除(git坑日记)
hzxOnlineOk
gitgit
git虽然会将我们stashpop后的stash记录移除引用,但是并不会删除,他存放在一些文件里,下面执行以下语句即可查找对应的commitId对应的修改:PS:注意,这里的commitId就是指的stash的Id,里边有我们stash后的文件修改记录,往下滚动即可逐个文件查找gitfsck会出现一堆的ID,找到commit对应的commitId,注意,这边可能是不按顺序的,需要从上到下逐个尝试
- Linux 常用 20 条指令,解决大部分问题
yqcoder
linux服务器运维
find:查找文件和目录例:find/-nameerror.log在/根目录下开始查找,名字为error.log的文件ps:查看当前进程信息例:ps-ef-e代表显示所有进程-f代表使用详细的进程信息vi:Linux系统中重要的文本编辑工具例:vidm.ini进入dm.ini文件进行内容编辑diff:比较文件差异例:diffdm.inidm_bak.ini比较dm.ini和dm_bak.ini的内
- 在 cmake_modules 目录下编写 FindG2O.cmake 以集成 G2O
XU磊260
SLAMc++开发语言
1.简介在使用G2O(GeneralGraphOptimization)库进行优化问题求解时,通常需要在CMake项目中正确配置G2O的头文件和库文件路径。由于G2O并未提供官方的CMake配置文件,因此需要手动编写FindG2O.cmake以确保CMake能够正确找到G2O的依赖项。本文将详细解析FindG2O.cmake的编写方式,并介绍其工作原理。2.CMake中的FindG2O.cmake
- 达梦 数据库操作日期
one 大白(●—●)
数据库达梦日期函数操作日期
排班情况获取当月获取上月和下月的数据select*fromuf_zbglbwherefind_in_set('1',zbbm)>0andrqlike'2021-03%'orrqlike'2021-3%'ordatepart(year,rq)=(selectdatepart(YEAR,ADD_MONTHS(DATE'2021-03-16',1)))anddatepart(month,rq)=(sel
- 【UI自动化】Selenium库中使用By类元素定位方法
搞不来测试的摄影狮
软件测试pythonselenium自动化
使用By类,首先需要在Python中导入该模块:fromselenium.webdriver.common.byimportBy1.通过元素的ID属性来定位driver.find_element(By.ID,'kw')如下图,我们需要定位百度的输入框。首先选中定位工具,然后选中输入框。我们可以看到该元素id的值为:"kw"2.通过元素的NAME属性来定位driver.find_element(By
- leetcode 贪心算法
gufly-
leetcode贪心算法算法
刷题记录以局部最优推出整体最优,且想不到反例,则可以尝试贪心算法455.分发饼干从后向前遍历孩子数组,用大饼干满足胃口大,并统计满足小孩数量classSolution(object):deffindContentChildren(self,g,s):g.sort()s.sort()res=0ind=len(s)-1foriinrange(len(g)-1,-1,-1):ifind>=0ands[i
- PTA:顺序表操作集
悦悦子a啊
C语言PTA习题数据结构算法c语言
本题要求实现顺序表的操作集。函数接口定义:ListMakeEmpty();PositionFind(ListL,ElementTypeX);boolInsert(ListL,ElementTypeX,PositionP);boolDelete(ListL,PositionP);其中List结构定义如下:typedefintPosition;typedefstructLNode*List;struc
- django获取请求参数
weixin_30613433
pythonjsonpostman
1.获取URL路径中的参数需求:假设用户访问127.0.0.1/user/1/2,你想获取1,2。应该怎么操作呢?(1)未命名参数(位置参数)#在项目下的urls.py下增加设置:url(r'^user/(\d+)/(\d+)$',views.index)#在user.views的index视图中:defindex(request,a,b):#接受的参数按顺序的returnHttpResponse
- linux 下 CUDA + Opencv 编程 之 CMakeLists.txt
maxruan
编程图像处理CUDAopencvlinuxc++cuda
CMAKE_MINIMUM_REQUIRED(VERSION2.8)PROJECT(medianFilterGPU)#CUDApackageFIND_PACKAGE(CUDAREQUIRED)INCLUDE(FindCUDA)#CUDAincludedirectoriesINCLUDE_DIRECTORIES(/usr/local/cuda/include)#OpenCVpackageFIND_P
- 第一行代码(第三版)kotlin-android-extensions报错处理
代码随想笔记
androidkotlin开发语言
classMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)valmBt_1:Button=findViewById(R.id.button1)
- 使用deepseek生成一个网页的简单架构
习学来起我扶
pythonhtml
python代码如下:fromflaskimportFlask,render_template,jsonifyapp=Flask(name)#定义要调用的Python函数defcac_sum():“”“示例计算函数”""str_print=‘现在打印这个了,哈哈哈哈哈哈’return{“result”:str_print}#返回计算结果@app.route(’/’)defindex():retur
- linux/shell find命令 模糊查询多个文件
青衫一笔墨
Linux/Shell相关shelllinux
find查找文件.表示当前目录typef查询文件(-typed查询目录)name文件名*代表全部|管道符将左边的查询结果集放到右边xargs通俗讲:将一大段参数(参数列表)分成小段ls查询当前目录下内容#查询出当前路径下以.txt和.sh结尾的全部文件find.-typef-name"*.txt"-o-name"*.sh"|xargsls
- 如何获取headers
EmoGP
爬虫爬虫
首先复制目标url这里以https://www.51job.com/为例关闭浏览器,重新打开,然后打开f12粘贴目标url并进入,找到第一个请求粘贴RequestHeaders使用正则进行替换:Find:(.*?):(.*)Replace:"$1":"$2",
- Linux grep 命令到底有多强?90% 的人只会用最简单的用法!
linux
前言:别再傻傻地翻文件了!grep让你效率翻倍!你有没有遇到过这种情况?日志文件太大,想找某个关键字,翻得眼花缭乱?代码里某个变量到底在哪改的,找半天都没找到?成百上千个文件里,想找某个特定的内容,手动翻找效率太低?如果你还在一行行地Ctrl+F查找内容,那你真的该认识一下Linux里最强大的查找工具——grep!它不仅能帮你快速定位关键内容,还能支持正则匹配、多文件查找、高亮显示,让你在海量数据
- 将wq9001驱动集成到rv1106 SDK
KL's pig/猪头/爱心/猪头
linux
下载代码上次修改好的代码已经上传到仓库,通过gitclone下载到SDK的luckfox-pico/sysdrv/drv_ko/wifi文件夹中修改上级Makefile文件打开luckfox-pico/sysdrv/drv_ko/wifi中的Makefile添加ifneq($(findstring$(RK_ENABLE_WIFI_CHIP),"WQ9001"),)@make-Cwq9001-wif
- uniapp bug解决:uniapp文件查找失败:‘uview-ui‘ at main.js:14
奶糖 肥晨
uniappuni-appbugui
文章目录报错内容解决方法`main.js`文件中uView主JS库引入uView的全局`SCSS`主题文件内容修改引入uView基础样式内容修改配置`easycom`内容修改报错内容10:50:51.795文件查找失败:'uview-ui'atmain.js:1410:59:39.570正在差量编译...10:59:43.213文件查找失败:'uview-ui'atmain.js:1410:59:
- 安装CUDA12.1和torch2.2.1下的DKG
超级无敌大好人
python
1.创建python虚拟环境setNO_PROXY=*condadeactivatecondaenvremove-nfindkgcondacreate-nfindkgpython=3.11condaactivatefindkgcondainstallpackagingsetuptoolspipuninstallnumpycondainstallnumpy=1.24.3请注意,DKG需要python
- Day55 图论part05
2401_83448199
图论
并查集理论基础并查集理论基础很重要,明确并查集解决什么问题,代码如何写,对后面做并查集类题目很有帮助。并查集理论基础|代码随想录总结1.并查集主要有两个功能:主要就是集合问题寻找根节点,函数:find(intu),也就是判断这个节点的祖先节点是哪个将两个节点接入到同一个集合,函数:join(intu,intv),将两个节点连在同一个根节点上判断两个节点是否在同一个集合,函数:isSame(intu
- 多线程编程之理财
周凡杨
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