当前位置:首页>Linux>Linux信号处理:kill使用与避坑

Linux信号处理:kill使用与避坑

  • 2026-07-02 16:42:04
Linux信号处理:kill使用与避坑

Linux信号处理:kill使用与避坑

一、kill 不是只能杀进程

kill本质上就是个进程或者进程组发送信号。不指定信号则相当于发送-15(SIGTERM)信号。可以指定-9(SIGKILL)强制杀死进程。

信号
能否被拦截
进程有机会善后
适用场景
-15 (TERM)
✅ 可以
✅ 可以(保存数据、清理临时文件)
优先使用
-9 (KILL)
❌ 不能
❌ 不能
进程无响应时最后兜底

查看系统所有信号:

kill -l 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR111) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3

这么多信号里,除了SIGKILL、SIGSTOP信号外,其他信号进程都可以捕获,然后做一些处理。 SIGKILL、SIGSTOP信号,进程无法捕获,内核直接处理,SIGKILL会杀死进程。SIGSTOP停止进程。

常用信号实操:

kill -15 <PID>             # SIGTERM 优雅退出(默认)kill -9 <PID>              # SIGKILL 强制杀死kill -2 <PID>              # SIGINT 等价 Ctrl+Ckill -1 <PID>              # SIGHUP 重载配置kill -19 <PID>             # SIGSTOP 暂停进程kill -18 <PID>             # SIGCONT 恢复进程

kill -15 跟kill -SIGTERM 是一样的效果。


二、杀不掉的进程类型及原因

SIGKILL信号虽然在内容里强制把进程杀掉,但存在一些情况无法杀掉进程。

信号处理机制:信号处理触发时机,是进程从内核态切回用户态的前一刻,内核会检查并处理进程待响应信号。 只要进程一直卡在内核态、无法切换回用户态,所有可捕获信号都无法被处理,进程也就杀不掉。下面总结几种情况无法杀掉进程。

2.1 僵尸进程 Z

进程已退出,父进程未调用 wait 收尸。 kill -9 无效,只能杀父进程,由 init 进程回收。

sudo kill -9 1648071# 僵尸进程还在ps -elf | grep 16480714 Z root     1648071    4732  0  80   0 -     0 -      Feb23 ?        00:00:00 [bash] <defunct>

2.2 不可中断D进程(Uninterruptible Sleep)

进程阻塞在底层硬件I/O(磁盘异常、NFS挂载卡死、外设I/O等待),进入不可中断睡眠(D状态),陷入内核态无法退出。

当出现这种情况,可以查看进程在内核里的堆栈。

# 查看<pid>进程所有线程的堆栈cat /proc/<pid>/task/*/stack# 查看系统所有进程的堆栈,这个包含所有线程for s in /proc/*/task/*/stack;do echo $s;cat $s;done

说点其他的:这里隐藏的一个设计理念,Linux一般认为系统里的硬件、外设等是稳定的。不稳定是比较小的概率,内核里很多代码为了简化错误处理,采用死等方式。一旦进程调用的接口陷入死等,则就无法杀死。这个就是宏内核的设计理念。 而微内核一般会假设任何一个组件:磁盘、IO设备等可能会出现错误,出现错误之后重启设备就可恢复。基于这个假设微内核里只有一小部分核心的IPC在内核里,很多文件系统、驱动等放到内核外,出现问题只是把模块重启,不重启整个系统。 不同的假设场景导致着两种设计完全不一样。

2.3 权限不足

当没有权限发送信号时可以看到下面的提示:

kill -9 1648071bash: kill: (1648071) - Operation not permitted

三、PID 复用引发致命误杀

Linux 内核的 PID 分配采用循环扫描策略:从上一次分配的 PID + 1 开始,在 300 到 pid_max 范围内扫描,找到第一个空闲 PID 即分配;达到最大值后回绕到最小值重新开始。

释放时,进程退出后内核仅将该 PID 标记为空闲,下次分配即可选中它——内核没有强制等待期。

这意味着 PID 会被快速循环复用。如果脚本先保存pid,过了一段时间后执行 kill -9 pid,如果原进程已退出,其 PID 被回收并分配给新进程,则会导致 kill -9 错杀无辜的新进程。

#!/bin/bash# 危险的做法:仅保存 PIDdo_something &SAVED_PID=$!# 假设过了一段时间后:# 1. do_something 早已退出# 2. PID $SAVED_PID 被系统回收并分配给了另一个新进程# 此时执行 kill -9,就会误杀那个无辜的新进程kill -9 $SAVED_PID

稍微安全的杀进程方式是判断对应的pid的进程是否就是想要杀的进程。

if [ -d "/proc/$SAVED_PID" ]; then    NAME=$(cat /proc/$SAVED_PID/comm)    if [ "$NAME" = "myapp" ]; then        kill -9 $SAVED_PID   # 名字匹配,安全杀    else        echo "PID 已被复用(当前进程: $NAME),跳过"    fifi

四、安全杀掉整个进程树

直接杀父进程,子进程会变成孤儿进程残留。可以在PID前面加个“-”号,杀掉整个进程树。

# 杀整个进程组kill -TERM -<PGID># 递归杀掉所有子子孙进程pkill -P 父PID

五、timeout 超时命令隐藏坑

timeout 默认发 SIGTERM,遇到 D 状态进程同样杀不掉。而且timeout要等待进程退出,D进程不肯退出,timeout也一样无法返回。 可双层套娃兜底:

timeout  -k, --kill-after=DURATION                 also send a KILL signal if COMMAND is still running                   this long after the initial signal was sent
timeout --kill-after=5 10 timeout 5 ./app

这个命令能生效是因为第一个timeout加了-k参数,超时后会发个kill信号,把第二个timeout杀掉。而第二个timeout是可以被杀掉的。


六、Shell 脚本优雅捕获信号

通过 trap 捕获信号,执行清理逻辑:

#!/bin/bashmyapp() {    sleep 100    echo "done"}cleanup() {    echo "清理临时文件..."    rm -f /tmp/lock /tmp/pid}trap cleanup TERMmyapp &child=$!wait "$child"

这里如果直接写成会有问题,信号处理函数会在myapp执行完后才会被调用。

#myapp &#child=$!#wait "$child"myapp        #脚本需要等待myapp执行完才能捕获信号

七、C 语言信号处理注意点

#include<signal.h>#include<stdio.h>#include<unistd.h>voidsig_handler(int sig){    printf("捕获到信号:%d\n", sig);}intmain(void){    signal(SIGTERM, sig_handler);//注册信号处理函数    signal(SIGINT,  sig_handler);    while (1)    {        printf("sleep 1s\n");        sleep(1);    }    return 0;}

实际上上面这个代码很危险。 信号处理函数可能被内核在程序的任意时刻调用,就像硬中断一样。如果主程序刚好在执行 printf——持有了内部的全局缓冲区锁——这时信号到达,内核暂停主程序, 转去执行 sig_handler。而 sig_handler 里又调用了 printf,尝试获取同一把锁,这样会出现死锁。

POSIX 标准定义了一组异步信号安全函数,只有这些函数可以安全地在信号处理函数中调用。

可以使用(异步信号安全)

类别
函数
基础 I/O
read
 / write / open / close
进程控制
_exit()
(注意不是 exit
信号操作
sigemptyset
 / sigaddset / sigprocmask
时间相关
pause
 / nanosleep / sleep
原子变量
sig_atomic_t
 类型的读写
其他
基础数学运算、无全局变量的纯逻辑

禁止使用(非异步信号安全)

类别
函数
原因
标准 I/O
printf
 / fprintf / sprintf / scanf / fopen / fclose / peror
内部有全局缓冲区锁
堆内存
malloc
 / free / calloc / realloc
堆管理器全局锁
退出函数
exit()
会刷新 I/O、调用钩子函数
有内部缓冲区的工具
strtok
 / strerror / getenv / localtime / gmtime
内部全局静态缓冲区
线程同步
pthread_mutex_lock
 / pthread_cond_wait
锁被信号打断会死锁
复杂系统调用
system
 / popen / fork(需极度谨慎)
派生进程,状态混乱

八、Linux自定义信号:业务调试专属用法

除了系统内置信号,Linux支持用户自定义信号,多用于业务进程调试、状态查询、日志打印、配置热重载,无需重启进程即可获取内部运行状态,是后端服务常用的调试手段。

8.1 常用自定义信号

Linux提供两类标准自定义信号,无默认终止进程行为,可由业务自定义逻辑:

SIGUSR1(信号10):用户自定义信号1

     •SIGUSR2(信号12):用户自定义信号2

除此之外,也可使用实时信号(SIGRTMIN~SIGRTMAX),支持排队,适合高并发场景下的自定义指令下发。

8.2 命令行发送自定义信号

通过kill命令向业务进程发送自定义信号,触发预设调试逻辑(如打印堆栈、输出状态、刷新日志、Dump配置),注意: 这是业务自定义的信号,有没捕获这两个信号,捕获这两个信号之后做什么事情跟业务相关,要看源码才能知道。如果业务没捕获这两信号,向业务发送信号会把业务杀死。

下面给个使能debug的例子,接收信号后,把标志位设置为1。

//信号处理函数void sigusr1_handler(int sig) {    (void)sig;    if (!debug_enabled) {        debug_enabled = 1;        safe_print("Debug mode enabled\n");    }}

完整的例子如下:

#include<stdio.h>#include<signal.h>#include<string.h>#include<unistd.h>#include<stdlib.h>static volatile sig_atomic_t debug_enabled = 0;voidsafe_print(constchar *msg){    write(1, msg, strlen(msg));}voidsigusr1_handler(int sig){    (void)sig;    if (!debug_enabled) {        debug_enabled = 1;        safe_print("Debug mode enabled\n");    }}intmain(){    struct sigaction sa;    //// Set up sigaction structure    sa.sa_handler = sigusr1_handler;    sigemptyset(&sa.sa_mask);    sa.sa_flags = 0;    if (sigaction(SIGUSR1, &sa, NULL) == -1) {        perror("sigaction failed");        return 1;    }    printf("Process PID: %d\n"getpid());    while (1) {        if (debug_enabled) {            printf("Debug: Main loop iteration\n");        }        sleep(1);    }    return 0;}

测试结果:

 ./sigtestProcess PID: 363998# 接收到信号后,调试功能使能了Debug mode enabledDebug: Main loop iterationDebug: Main loop iteration# 新窗口发送信号kill -USR1 363998

下篇介绍通过SIGSEGV回溯golang程序的堆栈。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 09:45:18 HTTP/2.0 GET : https://f.mffb.com.cn/a/494576.html
  2. 运行时间 : 0.099273s [ 吞吐率:10.07req/s ] 内存消耗:5,105.74kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=375a63414aa053ab6a1d82abe4a23e64
  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.000568s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000923s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000378s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000257s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000522s ]
  6. SELECT * FROM `set` [ RunTime:0.000237s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000674s ]
  8. SELECT * FROM `article` WHERE `id` = 494576 LIMIT 1 [ RunTime:0.000463s ]
  9. UPDATE `article` SET `lasttime` = 1783043118 WHERE `id` = 494576 [ RunTime:0.014860s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000265s ]
  11. SELECT * FROM `article` WHERE `id` < 494576 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000456s ]
  12. SELECT * FROM `article` WHERE `id` > 494576 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000412s ]
  13. SELECT * FROM `article` WHERE `id` < 494576 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000830s ]
  14. SELECT * FROM `article` WHERE `id` < 494576 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006927s ]
  15. SELECT * FROM `article` WHERE `id` < 494576 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001000s ]
0.101011s