当前位置:首页>Linux>第10讲 Linux进程创建方法与技巧

第10讲 Linux进程创建方法与技巧

  • 2026-07-02 16:31:30
第10讲 Linux进程创建方法与技巧

在 Linux 系统中,进程管理是理解操作系统运行机制的核心,而进程号(PID)进程创建则是这扇大门的钥匙。PID 作为每个进程独一无二的“身份证”,贯穿于进程控制、监控、调试与通信的每一个环节;而 fork()exec() 等系统调用,则构成了进程诞生与演化的血脉。

本文将从 PID 的概念和作用出发,逐步深入到进程创建的底层方法、高级技巧、常见陷阱以及性能优化建议。无论你是初涉系统编程的新手,还是希望梳理知识体系的老手,都能从中构建起一条清晰的知识脉络。

关注博主,每天分享Linux C++开发技术!!!

一、什么是PID?

PID(Process ID)是内核分配给每个进程的一个非负整数,从0开始递增,达到上限后回绕。它就像每个进程的“身份证号”。

# 查看当前Shell的PIDecho$$# 查看所有进程的PIDps aux | awk '{print $2, $11}'# 查看特定进程ps-ef | grep nginx

几个特殊PID

  • PID 0:空闲进程(idle),CPU没活干时就运行它

  • PID 1:init/systemd,所有进程的祖先,负责收养孤儿进程

  • PID 2:kthreadd,内核线程的父进程

# 查看内核线程ps -ef | grep "\["

二、PID的核心作用

1. 进程管理

最直接的作用是作为操作进程的“句柄”:

# 通过PID发送信号kill -91234          # 强制终止kill -USR1 1234       # 发送自定义信号# 调整优先级renice -10 -p 1234    # 提高优先级# 绑定CPU核心taskset -cp 0,21234  # 绑定到CPU0和CPU2# 限制资源prlimit --pid 1234 --nofile=1024:2048

2. 系统监控与诊断

# /proc文件系统:所有进程信息都在这里ls /proc/1234/cat /proc/1234/status       # 进程状态cat /proc/1234/limits       # 资源限制cat /proc/1234/maps         # 内存映射ls -l /proc/1234/fd/        # 打开的文件描述符# 查看进程树pstree -p 1234# 实时监控top -p 1234strace -p 1234              # 追踪系统调用

3. 进程间关系识别

PID建立了进程的家族谱系:

#include<stdio.h>#include<unistd.h>intmain(){pid_t pid = getpid();    // 获取自己的PIDpid_t ppid = getppid();  // 获取父进程PIDpid_t pgid = getpgid(0); // 获取进程组IDprintf("PID: %d, PPID: %d, PGID: %d\n", pid, ppid, pgid);// 创建子进程验证if (fork() == 0) {printf("Child - PID: %d, PPID: %d\n"getpid(), getppid());    }return0;}

4. 日志与审计

PID让系统行为可追溯:

# 查看谁打开了某个文件fuser -v /var/log/syslog# 审计进程的syscallauditctl -a exit,always -S openat -F pid=1234# 日志中的PID上下文journalctl _PID=1234

三、PID与文件锁

PID的一个实用场景是实现进程互斥——防止程序重复运行:

// 使用PID文件确保单实例运行intacquire_lock(constchar *lockfile){int fd = open(lockfile, O_RDWR|O_CREAT, 0644);if (fd < 0return-1;structflock fl = {        .l_type = F_WRLCK,        .l_whence = SEEK_SET,        .l_start = 0,        .l_len = 0    };if (fcntl(fd, F_SETLK, &fl) < 0) {close(fd);return-1;  // 已有实例运行    }// 写入当前PIDchar pid_str[16];snprintf(pid_str, sizeof(pid_str), "%d\n"getpid());write(fd, pid_str, strlen(pid_str));return fd;  // 返回锁定文件描述符,保持锁定}

四、PID的局限与注意事项

  1. PID重用问题:进程结束后PID可能被回收给新进程,因此不能长期缓存PID,使用时需验证进程是否还存在:

# 检查PID是否有效kill -0 1234 && echo"存在" || echo"不存在"
  1. PID命名空间:容器技术中,同一个进程在宿主机和容器内PID不同:

# 宿主机上查看ps aux | grep docker# 容器内查看(PID从1开始)docker exec container_name ps aux
  1. TID与PID的关系:多线程中,每个线程有自己的TID,但共享PID:

#include<sys/syscall.h>pid_t tid = syscall(SYS_gettid);  // 获取线程ID

核心要点:PID是Linux系统最基础的进程标识,掌握了它就掌握了管理进程的钥匙。无论是排查僵尸进程、分析性能瓶颈,还是实现进程间通信,PID都是你绕不开的核心概念。

五、核心系统调用:fork()

#include <unistd.h>#include <stdio.h>int main() {    pid_t pid = fork();if (pid < 0) {        perror("fork failed");return1;    }elseif (pid == 0) {// 子进程:fork()返回0printf("Child process: PID=%d, PPID=%d\n"               getpid(), getppid());    }else {// 父进程:fork()返回子进程的PIDprintf("Parent process: PID=%d, Child PID=%d\n"               getpid(), pid);    }return0;}

写时复制(Copy-On-Write)机制:fork后子进程共享父进程内存页,只有当任一进程修改内存时,内核才复制该页。这极大提升了性能。

fork的继承细节

子进程继承:

  • 文件描述符(共享文件偏移量)

  • 信号处理方式

  • 环境变量

  • 工作目录

子进程独有:

  • 新的PID和PPID

  • 独立的地址空间

  • 文件锁不继承

  • 未处理的信号和定时器被清空

六、exec家族:程序替换

#include<unistd.h>// 六种exec变体intexecl(constchar *path, constchar *arg0, ..., NULL);intexecle(constchar *path, constchar *arg0, ..., NULLchar *envp[]);intexeclp(constchar *file, constchar *arg0, ..., NULL);intexecv(constchar *path, char *const argv[]);intexecve(constchar *path, char *const argv[], char *envp[]);intexecvp(constchar *file, char *const argv[]);

命名规则

  • l:参数以列表形式传递

  • v:参数以数组形式传递

  • p:在PATH中搜索程序

  • e:自定义环境变量

典型用法

// fork + exec组合pid_t pid = fork();if (pid == 0) {// 子进程执行新程序    execl("/bin/ls""ls""-l""-a", NULL);//exec成功不会返回,失败才到这儿    perror("exec failed");exit(1);}

七、高级技巧

1. 优雅的资源清理

voidspawn_process(constchar *cmd, char *const argv[]){pid_t pid = fork();if (pid == 0) {// 子进程关闭不需要的文件描述符for (int fd = 3; fd < getdtablesize(); fd++)close(fd);execvp(cmd, argv);        _exit(127);  // 用_exit而非exit,避免冲洗缓冲区    }}

2. 管道通信

int pipefd[2];pipe(pipefd);pid_t pid = fork();if (pid == 0) {close(pipefd[0]);  // 子进程关闭读端    dup2(pipefd[1], STDOUT_FILENO);  // 重定向标准输出到管道    execl("/bin/ls""ls", NULL);else {close(pipefd[1]);  // 父进程关闭写端    char buf[1024];read(pipefd[0], buf, sizeof(buf));  // 从管道读取数据}

3. 守护进程创建(双fork技巧)

void daemonize() {    pid_t pid = fork();if (pid > 0exit(0);  // 父进程退出    setsid();  // 创建新会话,脱离终端    pid = fork();if (pid > 0exit(0);  // 第一个子进程退出    // 现在运行在无法重新获得终端的进程中chdir("/");umask(0);close(0); close(1); close(2);// 重定向标准文件描述符open("/dev/null", O_RDONLY);open("/dev/null", O_WRONLY);open("/dev/null", O_WRONLY);}

4. 进程同步技巧

// 使用信号同步父子进程volatilesig_atomic_t child_ready = 0;voidchild_handler(int sig){    child_ready = 1;}// 父进程等待子进程就绪signal(SIGUSR1, child_handler);pid_t pid = fork();if (pid == 0) {// 初始化工作...kill(getppid(), SIGUSR1);  // 通知父进程// 继续执行...}// 父进程等待信号while (!child_ready) pause();

5. posix_spawn:更安全的替代方案

#include<spawn.h>posix_spawn_file_actions_t actions;posix_spawn_file_actions_init(&actions);posix_spawn_file_actions_addclose(&actions, 3);pid_t pid;char *argv[] = {"ls""-l"NULL};externchar **environ;int ret = posix_spawnp(&pid, "ls", &actions, NULL, argv, environ);posix_spawn_file_actions_destroy(&actions);

八、避免常见陷阱

  1. fork炸弹防护:限制进程数

// 在fork前检查进程数int proc_count = 0;DIR *dir = opendir("/proc");while (readdir(dir)) proc_count++;closedir(dir);if (proc_count > MAX_PROCS) {sleep(1);continue;}
  1. 僵尸进程处理

// 方法1:忽略SIGCHLDsignal(SIGCHLD, SIG_IGN);// 方法2:waitpid非阻塞循环while (waitpid(-1NULL, WNOHANG) > 0);
  1. 线程安全问题:多线程程序中fork,只有调用fork的线程在子进程中存在,可能导致死锁。建议fork后立即exec。

九、性能优化建议

  1. vfork():当fork后立即exec时,vfork更高效(不复制页表)

  2. clone():提供细粒度控制,适合实现线程和容器

  3. 批量进程管理:使用进程池技术,预创建进程减少fork开销

最新文章

随机文章

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