1. 程式人生 > >dubbo-php-framework控制檯provider_admin其他操作解析

dubbo-php-framework控制檯provider_admin其他操作解析

通過前面兩篇文章分析了provider_admin裡面服務啟動過程,這篇我們把剩下的幾個操作的實現做介紹,這裡主要介紹list,status,stop,reload這四個操作,而額外的restart過程就是首先呼叫stop,後呼叫start的過程,不展開具體分析。先介紹stop過程。

function stopProvider($name)
{
	$masterPid = getProviderMasterPid($name);
	if (empty($masterPid))
	{
		waitProcessEnd($name);
	}
	else
	{
		if (!posix_kill(intval($masterPid), SIGTERM))
		{
			fwrite(STDERR, "end signal to {$name}: {$masterPid} failed" );
		}
		waitProcessEnd($name);
	}

	$masterFile = FSOF_PROVIDER_PID_PATH.$name.MASTER_PID_FILE_FORMAT;
	$managerFile = FSOF_PROVIDER_PID_PATH.$name.MANAGER_PID_FILE_FORMAT;
	if (file_exists($masterFile))
	{
		unlink($masterFile);
	}
	if (file_exists($managerFile))
	{
		unlink($managerFile);
	}
    echo "stop server {$name} \033[32;40m [SUCCESS] \033[0m".PHP_EOL;
}