当前位置:首页>鸿蒙APP>鸿蒙6文件系统的"物业管家"

鸿蒙6文件系统的"物业管家"

  • 2026-08-16 01:54:03
鸿蒙6文件系统的"物业管家"
在OpenHarmony6.1源码分析的init模块分析中,已经分析过 ueventd,在 base/startup/init/ueventd/ueventd_main.c 中,今天我们来拆解一下这个进程。
ueventd 是 OpenHarmony 启动子系统里的设备节点守护进程,主要职责是监听 Linux 内核发出的 uevent 事件,然后在用户空间创建、删除、修复 /dev 下的设备节点,并设置对应的权限、属主、SELinux 标签。

你装杯带你废,带你霍霍OpenHarmony~ 大家好我是控哥,本期给大家带来的是:文件系统的"物业管家":ueventd。

欢迎大家点赞关注+转发,感谢您的支持!

一、角色定位

如果把系统启动比作装修:
内核= 施工队,把硬件设备识别出来,然后对外喊"我发现了 xx 设备,主从设备号是 yy"。
ueventd= 物业管家,听到喊声后去 /dev 目录下创建对应的门牌号(设备节点),并配好钥匙权限(mode/uid/gid/SELinux)。
init= 总包,第一阶段(init_early)会先把 ueventd 拉起来处理冷启动设备,后续继续完成挂载、服务启动等。
源码入口:
base/startup/init/ueventd/ueventd_main.c
base/startup/init/ueventd/ueventd.c
base/startup/init/ueventd/ueventd_device_handler.c

二、核心职责

从 base/startup/init/ueventd/ueventd_main.c 的 main 函数可以看到它有四种工作模式:
#defineUEVENTD_MODE_DEAMON     0#defineUEVENTD_MODE_EARLY_BOOT 1#defineUEVENTD_MODE_RETRIGGER  2#defineUEVENTD_MODE_LISTEN     3
对应职责:

模式

作用

daemon(默认)

长期守护,监听内核 uevent socket,处理热插拔

early boot

在启动极早期创建少量必须设备节点

retrigger

重新触发并处理所有已产生的 uevent,常用于冷启动补建节点

listen

只监听不 retrigger

base/startup/init/ueventd/ueventd.c 中的 HandleUevent 是事件分发的核心:
STATIC voidHandleUevent(conststruct Uevent *uevent){    if (uevent->action == ACTION_ADD || uevent->action == ACTION_CHANGE || uevent->action == ACTION_ONLINE) {        ChangeSysAttributePermissions(uevent->syspath);    }    SUBSYSTEMTYPE type = GetSubsystemType(uevent->subsystem);    switch (type) {        case SUBSYSTEM_BLOCK:            HandleBlockDeviceEvent(uevent);            break;        case SUBSYSTEM_FIRMWARE:            HandleFimwareDeviceEvent(uevent);            break;        case SUBSYSTEM_OTHERS:            HandleOtherDeviceEvent(uevent);            break;        default:            break;    }}
ueventd 支持的 action 包括:
static const char *actions[] = {    [ACTION_ADD] = "add",    [ACTION_REMOVE] = "remove",    [ACTION_CHANGE] = "change",    [ACTION_MOVE] = "move",    [ACTION_ONLINE] = "online",    [ACTION_OFFLINE] = "offline",    [ACTION_BIND] = "bind",    [ACTION_UNBIND] = "unbind",    [ACTION_UNKNOWN] = "unknown",};


三、举个例子:插入一个 U 盘 / 块设备

这是最常见的场景,也是 ueventd 存在的典型意义。
1. 内核发现设备并发送 uevent
当 USB 总线枚举到一个 U 盘时,内核会通过 netlink socket 发送一条 uevent 消息,内容类似:
ACTION=addDEVPATH=/devices/platform/soc/xxx/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/block/sdaSUBSYSTEM=blockDEVNAME=sdaMAJOR=8MINOR=0PARTN=0
2. ueventd 从 socket 读到这条消息
base/startup/init/ueventd/ueventd_main.c 的主循环:
staticvoidPollUeventdSocketTimeout(int ueventSockFd, bool ondemand){    struct pollfd pfd = {};    pfd.events = POLLIN;    pfd.fd = ueventSockFd;    // ...    while (1) {        ret = poll(&pfd, 1, timeout);        if (pfd.revents & (POLLIN | POLLERR)) {            ProcessUevent(ueventSockFd, NULL0NULL);        }    }}
3. 解析 uevent 字段
base/startup/init/ueventd/ueventd.c 中的 AddUevent 把字符串解析成结构体:
staticvoidAddUevent(struct Uevent *uevent, constchar *event, size_t len){    if (STARTSWITH(event"DEVPATH=")) {        uevent->syspath = event + strlen("DEVPATH=");    } else if (STARTSWITH(event"SUBSYSTEM=")) {        uevent->subsystem = event + strlen("SUBSYSTEM=");    } else if (STARTSWITH(event"ACTION=")) {        uevent->action = GetUeventAction(event + strlen("ACTION="));    } else if (STARTSWITH(event"DEVNAME=")) {        uevent->deviceName = event + strlen("DEVNAME=");    } else if (STARTSWITH(event"MAJOR=")) {        uevent->major = StringToInt(event + strlen("MAJOR="), -1);    } else if (STARTSWITH(event"MINOR=")) {        uevent->minor = StringToInt(event + strlen("MINOR="), -1);    }    // ...}
4. 按子系统分发处理
HandleUevent 判断 SUBSYSTEM=block,调用 HandleBlockDeviceEvent。
base/startup/init/ueventd/ueventd_device_handler.c 里最终会调用 mknod 创建 /dev/block/sda,并参考 ueventd.config 设置权限、uid、gid、SELinux 标签。

四、ueventd 处理块设备的流程图


五、启动阶段:init_early 如何拉起 ueventd

在系统启动第一阶段,init_early 会调用 StartUeventd 来处理 ramdisk 阶段的冷启动设备事件。
源码位置:
base/startup/init/services/init/standard/init_firststage.c
voidSystemPrepare(longlong upTimeInMicroSecs){    // ...    CreateFsAndDeviceNode();    HookMgrExecute(GetBootStageHookMgr(), INIT_FIRST_STAGE, NULLNULL);    if (InUpdaterMode() != 0) {        return;    }    MountRequiredPartitions();    StartSecondStageInit(upTimeInMicroSecs);}
CreateFsAndDeviceNode 内部会启动 ueventd 处理 coldplug,否则 ramdisk 阶段很多块设备节点(比如 /dev/block/by-name/system)还没创建,无法挂载 system 分区。
ueventd 在 daemon 模式下,启动后还会检查 UEVENTD_FLAG 文件:
if (!listen_only && access(UEVENTD_FLAG, F_OK)) {    INIT_LOGI("Ueventd started, trigger uevent");    RetriggerUevent(ueventSockFd, NULL0);    int fd = open(UEVENTD_FLAG, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);    // ...}
如果 flag 文件不存在,说明是冷启动,需要 RetriggerUevent 重新触发并处理所有已产生的 uevent。
如果 flag 文件已存在,说明已经处理过,只进入正常监听。

六、ueventd.config 长什么样

ueventd 通过配置文件知道每个设备节点应该用什么权限、属主、SELinux 标签。
配置文件路径:
base\startup\init\ueventd\etc\ueventd.config
base/startup/init/ueventd/ueventd_read_cfg.c 负责解析。
典型配置格式类似这样:
/dev/block/sda      0660   system     system/dev/ttyUSB*        0660   root       root/dev/input/event*   0660   system     input
<devicename> <mode> <uid> <gid> <parameter>  | 字段        | 说明             |  | ----------- | ---------------- |  | device name | 设备节点名称     |  | mode        | 设备节点所给予的权限,遵循UGO模型|  | uid         | 设备节点的uid |  | gid         | 设备节点的gid |  | parameter   | 设备节点参数信息,作用类似于通知,如果设备创建了,会设置一个对应parameter,根据参数信息便于其他进程对该节点进行对应的操作
举个栗子
   /dev/null 0666 0 0  device_null   如在dev/null节点下操作:   当设备被创建:系统会设置startup.uevent.device_null"added"   当设备被卸载:系统会设置startup.uevet.device_null"removed"
ueventd 在创建节点后,会按匹配规则调用 chown、chmod、setfilecon 等设置属性。

七、总结

问题

回答

ueventd 是什么

OpenHarmony 启动子系统中的设备节点守护进程

扮演什么角色

连接内核热插拔事件与 /dev 文件系统的"物业管家"

主要职责

监听 uevent、创建/删除/修复设备节点、设置权限和 SELinux 标签

何时启动

ramdisk 第一阶段由 init_early 拉起,处理冷启动设备;之后作为守护进程监听热插拔

典型例子

插入 U 盘后,内核发 ACTION=add SUBSYSTEM=block,ueventd 创建 /dev/block/sda 并配置权限

如果没有 ueventd,内核驱动虽然识别了设备,但用户空间没有 /dev 节点,framework 和应用就无法访问硬件。

通俗易懂的ueventd官方文档摘抄:

ueventd服务是按需启动的服务,其行为是当有uevent事件上报时,init监听到socket消息,会将ueventd服务拉起使其处理相应的socket消息,ueventd服务处理完现有的socket消息后,会自己再轮询对应socket句柄30秒,若30秒内又有新消息上报,则继续处理,待处理结束后再次计时轮询30秒;若超过30秒都没有新消息上报,ueventd服务将会退出,并将socket交还给init轮询,此时就会出现日志:poll ueventd socket timeout, ueventd exit


安卓小众宝藏 APP!灵动岛 + 流动文字表白墙,每天零钱可直接提现

灵动岛美化 安卓专属灵动常驻窗口,听歌、电量、网速等自定义样式,手机瞬间变精致,操作便利不卡顿。

全屏流动文字表白墙:三连击灵动岛可进入设置全屏滚动流动文字,不单用于告白,留联系电话、展示标语、心愿短句都适配,字体配色滚动速度随心调,摆摊、告白都好用。

无门槛赚钱提现:日常使用就能攒红包,无最低提现门槛,无提现上限,每日均可微信提现,亲测不到一个月累计微信到账 118.86 元。零碎时间买点零食,yyds

实测零碎时间看广告,每小时红包预计可以拿到手5块,真实靠谱。

填写邀请码 CEAF62A3,双方解锁红包福利,我升级 VIP,你额外多拿收益。 安装包很小,下载无捆绑,感兴趣直接点链接体验:

下载入口:

https://qcnvld5ujs4p.feishu.cn/file/PwlwbwRfSoIPYlxSAfFcaAqMnmd

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-19 04:58:31 HTTP/2.0 GET : https://c.mffb.com.cn/a/503007.html
  2. 运行时间 : 0.184262s [ 吞吐率:5.43req/s ] 内存消耗:4,459.48kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1a6bc575878f1ab9461258784051ecaa
  1. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/runtime/temp/cefbf809ba1a84190cb04b0cb7abcf79.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000858s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001332s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000618s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000688s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001282s ]
  6. SELECT * FROM `set` [ RunTime:0.000649s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001420s ]
  8. SELECT * FROM `article` WHERE `id` = 503007 LIMIT 1 [ RunTime:0.003201s ]
  9. UPDATE `article` SET `lasttime` = 1787086712 WHERE `id` = 503007 [ RunTime:0.002452s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000720s ]
  11. SELECT * FROM `article` WHERE `id` < 503007 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001126s ]
  12. SELECT * FROM `article` WHERE `id` > 503007 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001044s ]
  13. SELECT * FROM `article` WHERE `id` < 503007 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002497s ]
  14. SELECT * FROM `article` WHERE `id` < 503007 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001881s ]
  15. SELECT * FROM `article` WHERE `id` < 503007 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002587s ]
0.188080s