PostgreSQL server端接收连接后fork进程
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,main->PostmasterMain->ServerLoop: for(;;){ ... //会阻塞在这,监视文件描述符的
千家信息网最后更新 2026年10月31日PostgreSQL server端接收连接后fork进程
main->PostmasterMain->ServerLoop: for(;;){ ... //会阻塞在这,监视文件描述符的变化 selres = select(nSockets, &rmask, NULL, NULL, &timeout); if (selres > 0){ for (i = 0; i < MAXLISTEN; i++){ //找一个有效的fd if (ListenSocket[i] == PGINVALID_SOCKET) break; if (FD_ISSET(ListenSocket[i], &rmask)){ port = ConnCreate(ListenSocket[i]);->StreamConnection->accept BackendStartup(port);//fork进程 |-- pid = fork_process(); | if (pid == 0){//child | InitPostmasterChild(); | ClosePostmasterPorts(false); | BackendInitialize(port); | //该函数不会返回 | BackendRun(port);->PostgresMain: | |-- for (;;){ | | if (send_ready_for_query){ | | ... | | ReadyForQuery(whereToSendOutput);->pq_flush();->internal_flush->secure_write->secure_raw_write->send | | send_ready_for_query = false; | | } | | firstchar = ReadCommand(&input_message); | | switch(firstchar):{ | | case 'Q':exec_simple_query(query_string); | | ... | | } | |-- } | } | ...father |-- return STATUS_OK //关闭father socket StreamClose(port->sock); ConnFree(port); } } } }
进程
函数
文件
变化
监视
阻塞
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技未来
北京互联网科技
金融科技 互联网金融
喔噻互联网科技
上海挚品互联网科技
为想互联网科技
世界互联网领先科技成果
上海喔噻互联网科技
时间互联网络科技
苏州大垚互联网科技
互联网科技大会案例
温州喔噻互联网科技有限公司
晋城互联网科技
朱啸虎曾投资哪些互联网科技企业
从那以后互联网科技有限公司
东营紫格互联网科技
山东大美朱楼互联网科技有限公司
互联网科技平台产品运营
互联网科技新闻
中国互联网公司的科技投入
广州百单互联网科技有限公司
科技互联网政务服务
互联网科技集团
智网互联网科技
卓越科技互联网 招聘
开启互联网科技时代小说
阿里巴巴算科技企业还是互联网
科技赋能视角下互联网保险发展
半导体是互联网高科技吗
广州有谷有贝互联网科技有限公司