一、前言
有些时候我们需要监控一些服务的运行状态,比如说Apach或MySQL的运行状态,最近工作中也开发了这方面的功能,记录下来怎样使用PHP语言来实时监控Apache、MySQL服务的运行状态。
如果想一键开启Apache或MySQL等其他服务可以看这篇文章
【PHP】通过PHP开启/暂停Apache、MySQL或其他服务-****博客
二、代码
首先要知道要监控服务的所在地址,下面代码中的地址根据实际情况修改。
返回值是'active'运行状态和'stop'停止状态,前端可以轮询请求这个方法,以实时监控服务运行状态。
public function getServer()
{
$info = [];
// 要监控的服务
$server['apache'] = "E:\phpstudy_pro\Extensions\Apache2.4.39\bin\httpd.exe";
$server['mysql'] = "E:\phpstudy_pro\Extensions\MySQL5.7.26\bin\mysqld.exe";
if (!empty($server)) {
// apache
$apache = $this->getProcessNameByName($server['apache']);
if (!empty($apache)) {
if ($apache[0] == $server['apache']) {
$info['apache'] = 'active'; //运行状态
}else{
$info['apache'] = 'stop'; //停止状态
}
} else {
$info['apache'] = 'stop'; //停止状态
}
// mysql
$mysql = $this->getProcessNameByName($server['mysql']);
if (!empty($mysql)) {
if ($mysql[0] == $server['mysql']) {
$info['mysql'] = 'active'; //运行状态
}else{
$info['mysql'] = 'stop'; //停止状态
}
} else {
$info['mysql'] = 'stop'; //停止状态
}
}
return apiResponse('200','success',$info);
}