当前位置:首页>Linux>Linux 开机自动执行脚本:systemd service 配置与排错

Linux 开机自动执行脚本:systemd service 配置与排错

  • 2026-08-19 15:36:51
Linux 开机自动执行脚本:systemd service 配置与排错

如果想开机就执行一个脚本,怎么做?

在 Linux 服务器运维中,经常需要让某些脚本或程序在系统启动时自动运行——比如挂载远程存储、建立反向隧道连接 CI/CD 服务器、启动监控代理等。过去大家习惯往 /etc/rc.local 里堆命令,但这种方式既无法管理依赖顺序,也无法追踪运行状态。

如今主流 Linux 发行版都已采用 systemd 作为初始化系统,通过编写 service 单元文件来实现开机自启,是更规范、更可控的做法。本文将从实际操作出发,逐步解析其工作原理,并整理常见配置参数与排错经验。

一、操作实录

假设需要在服务器开机时自动执行一个连接 Jenkins 的脚本 /root/connect.sh,完整操作如下:

1. 创建 service 文件

sudo vim /etc/systemd/system/dosomething.service

写入以下内容:

[Unit]
Description=Run Something at boot
After=network.target

[Service]
Type=oneshot
ExecStart=/root/run.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

2. 重新加载 systemd 配置

sudo systemctl daemon-reexec

3. 启用开机自启

sudo systemctl enable dosomething.service

💡 完成以上三步后,系统每次启动都会自动执行 /root/run.sh

二、技术原理

systemd 概述

systemd 是现代 Linux 发行版(Ubuntu 16.04+、Debian 8+、CentOS 7+ 等)的系统和服务管理器,在系统引导过程中作为第一个进程(PID 1)运行,负责初始化整个用户空间。它取代了传统的 SysV init 系统,主要优势包括:

🚀 并行启动:多个服务同时拉起,缩短启动时间

🔗 依赖管理:通过声明式配置精确控制启动顺序

🧩 统一接口systemctl 命令统一管理所有服务

📊 生命周期跟踪:每个服务都有明确的状态(active、inactive、failed 等)

Service 文件结构解析

▎[Unit] 段:元数据与启动顺序

Description=Do Something at boot
After=network.target
  • Description:服务的可读描述,出现在 systemctl status 输出中。
  • After:定义启动顺序约束。它表示"在 network.target 完成之后再启动本服务",属于弱依赖——只保证顺序,不保证网络一定可用。如果脚本中需要真正可用的网络连接(如访问远程 HTTP 接口),应使用更严格的配置:
After=network-online.target
Wants=network-online.target

Wants 会主动拉起 network-online.target,确保网络接口完成 IP 分配和路由配置。

▎[Service] 段:运行行为定义

Type=oneshot
ExecStart=/root/connect.sh
RemainAfterExit=yes
  • Type=oneshot:适用于执行完即退出的任务。systemd 会等待 ExecStart 指定的进程完全退出后,才认为该服务"启动完成"。
  • ExecStart:指定要执行的主命令。必须是绝对路径。
  • RemainAfterExit=yes:关键参数。由于 oneshot 类型的进程执行完就会退出,如果不设置此项,systemd 会判定服务启动失败。设为 yes 后,即使进程已退出,systemd 仍将其标记为 active (exited) 状态。
  • 常见的 Type 类型对比:
类型 适用场景
simple 前台持续运行的进程(默认值)
forking 传统守护进程,父进程 fork 子进程后自行退出
oneshot 一次性任务,执行完毕即退出
notify 进程通过 sd_notify() 向 systemd 发送就绪信号
dbus 通过 D-Bus 名称注册来判定就绪
idle 等待其他任务全部启动完毕后执行

▎[Install] 段:安装信息

WantedBy=multi-user.target

这定义了服务被 enable 时的归属目标。multi-user.target 对应传统的运行级别 3(多用户命令行模式)。执行 systemctl enable 后,systemd 会在 /etc/systemd/system/multi-user.target.wants/ 目录下创建一个指向该 service 文件的符号链接。系统进入该 target 时,会自动启动所有被链接的服务。

常见的 WantedBy 目标:

目标 含义
multi-user.target 多用户命令行模式
graphical.target 图形界面模式
default.target 系统默认目标(通常是上述两者之一)

daemon-reexec 与 daemon-reload 的区别

文中使用了 daemon-reexec,它会完全重启 systemd 守护进程本身,重新执行 systemd 二进制文件。在日常操作中,更常用的是:

sudo systemctl daemon-reload
命令 作用范围 典型使用场景
daemon-reload 仅重新加载 unit 文件配置 新增或修改 service/timer 等单元文件后
daemon-reexec 重启 systemd 进程本身 systemd 软件包升级后

绝大多数情况下 daemon-reload 已经足够,daemon-reexec 的开销更大。

enable 的本质

systemctl enable 并非将配置"写入某个开机脚本",而是在对应的 .wants 目录中建立符号链接。可以通过下面命令验证:

ls -la /etc/systemd/system/multi-user.target.wants/connect_jenkins.service
# lrwxrwxrwx 1 root root 41 Jan 15 10:00 ... -> /etc/systemd/system/connect_jenkins.service

相应地,systemctl disable 只是删除这个符号链接,不会删除原始的 service 文件。

编写 service 文件
daemon-reload
enable 建立链接
系统启动时按序执行

▲ 开机自启核心流程链路

三、常用参数配置

3.1 环境变量注入

[Service]
Environment="JENKINS_URL=https://jenkins.example.com"
Environment="API_TOKEN=abc123xyz"
EnvironmentFile=/etc/sysconfig/connect_jenkins
ExecStart=/root/connect.sh

Environment 直接定义单个变量,EnvironmentFile 则可以批量从一个文件中读取(文件格式为 KEY=VALUE,以 # 开头的行视为注释)。

3.2 指定运行用户

[Service]
User=jenkins
Group=jenkins
ExecStart=/root/connect.sh

⚠️ 注意:如果将脚本存放在 /root/ 目录下,同时指定非 root 用户运行,会因权限不足导致 Permission denied。建议将脚本移至 /usr/local/bin/ 等全局可读路径。

3.3 自动重启策略

对于需要长期运行的进程(如隧道、守护程序),应配置重启策略:

[Service]
Type=simple
ExecStart=/usr/bin/my-daemon
Restart=always
RestartSec=10

Restart 字段的可选值:

触发重启的条件
no从不重启(默认)
on-success仅在进程正常退出(exit code 0)时
on-failure仅在非正常退出时(非零退出码、被信号杀死等)
on-abnormal被信号杀死或超时
always无论何种原因退出都重启

3.4 超时与启动频率限制

[Service]
TimeoutStartSec=30
TimeoutStopSec=15
StartLimitIntervalSec=300
StartLimitBurst=5
  • TimeoutStartSec:服务启动阶段的超时时间。如果进程在该时间内未发出就绪信号(对于 Type=notify)或未退出(对于 Type=oneshot),systemd 会认为启动失败并终止进程。
  • StartLimitIntervalSec 和 StartLimitBurst:联合限制单位时间内的启动次数,防止故障服务无限循环重启消耗系统资源。

3.5 日志查看

systemd 自动将所有服务的标准输出和标准错误收集到 journald

journalctl -u connect_jenkins.service        # 查看全部日志
journalctl -u connect_jenkins.service -f     # 实时追踪(类似 tail -f)
journalctl -u connect_jenkins.service --since "1 hour ago"

3.6 延迟启动

如果希望脚本在开机后延迟一段时间再执行,有两种方式:

方式一:在 service 中使用 ExecStartPre

[Service]
ExecStartPre=/bin/sleep 30
ExecStart=/root/connect.sh

方式二:使用 systemd timer(推荐)

# /etc/systemd/system/connect_jenkins.timer
[Unit]
Description=Delay Connect Jenkins startup

[Timer]
OnBootSec=60s
Unit=connect_jenkins.service

[Install]
WantedBy=timers.target

然后启用 timer 而非直接启用 service:

systemctl enable connect_jenkins.timer
systemctl start connect_jenkins.timer

timer 方式的优势在于独立于 service 文件,时间控制更灵活(支持日历定时、单调定时等),且不会污染 service 的启动逻辑。

四、常见报错与排查

报错 1:exit code 1 / 启动失败

connect_jenkins.service: Failed with result 'exit-code'.
Process: 1234 ExecStart=/root/connect.sh (code=exited, status=1/FAILURE)

排查步骤:

# 查看详细日志
journalctl -u connect_jenkins.service --no-pager

# 手动以 bash -x 调试脚本
bash -x /root/connect.sh

# 确认脚本首行包含正确的 shebang
head -1 /root/connect.sh
# 应输出 #!/bin/bash 或 #!/bin/sh

常见原因汇总:

原因 解决方法
脚本无执行权限chmod +x /root/connect.sh
脚本中使用相对路径全部改为绝对路径
依赖的环境变量未设置在 service 文件中用 Environment= 声明
脚本依赖的命令不在 PATH 中用绝对路径调用或设置 Environment=PATH=...

报错 2:Permission denied

Failed to execute command: Permission denied
# 确保脚本有可执行权限
chmod 755 /root/connect.sh

# 确认文件权限
ls -la /root/connect.sh

报错 3:网络未就绪

脚本尝试连接远程服务器,但 DNS 解析失败或连接被拒绝,尽管配置了 After=network.target

原因network.target 仅表示网络服务进程已启动,不代表网络接口已完成 IP 配置或网关可达。

解决:改用 network-online.target:

[Unit]
Description=Run Connect Jenkins at boot
Wants=network-online.target
After=network-online.target

同时确保等待网络在线的组件已启用(取决于发行版):

# Debian/Ubuntu
systemctl enable systemd-networkd-wait-online.service

# CentOS/RHEL
systemctl enable NetworkManager-wait-online.service

报错 4:start-limit-hit

Start request repeated too quickly.
Failed with result 'start-limit-hit'.

原因:服务在短时间内反复启动失败,触发了 systemd 的启动频率保护机制。

# 重置失败计数
systemctl reset-failed connect_jenkins.service

# 修复根本问题后再启动
systemctl start connect_jenkins.service

报错 5:enable 提示文件不存在

Failed to enable unit: Unit file connect_jenkins.service does not exist.
# 确认文件位置
ls /etc/systemd/system/connect_jenkins.service

# 重新加载配置
systemctl daemon-reload

# 再次尝试 enable
systemctl enable connect_jenkins.service

排错速查表

检查项 命令
服务是否已加载systemctl list-unit-files | grep ...
当前运行状态systemctl status ...service
最近相关日志journalctl -xe -u ...service
配置语法校验systemd-analyze verify ...
手动执行测试/root/connect.sh

五、总结

通过 systemd service 文件实现开机自启,其核心流程可以概括为:

编写 service 文件daemon-reload 加载配置enable 建立开机链接系统启动时按依赖顺序执行

对于一次性脚本任务,Type=oneshot 配合 RemainAfterExit=yes 是最合适的组合。如果脚本实际需要维持一个长期连接(如 SSH 反向隧道),则应考虑改为 Type=simple 并添加 Restart=always,确保进程异常退出后能自动恢复。

掌握 systemd service 的配置与排错方法,是 Linux 系统管理的基础技能。相比传统的 rc.local 方式,systemd 提供了更完善的依赖管理、状态追踪和日志集成能力,值得在各类自动化运维场景中推广使用。

— END —

觉得有用?转发给需要的朋友

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 19:58:44 HTTP/2.0 GET : https://f.mffb.com.cn/a/507692.html
  2. 运行时间 : 0.174768s [ 吞吐率:5.72req/s ] 内存消耗:4,933.77kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=902f30c3b22595224b89c68c57b3b721
  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.000691s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001153s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001656s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.009092s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001050s ]
  6. SELECT * FROM `set` [ RunTime:0.000433s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001286s ]
  8. SELECT * FROM `article` WHERE `id` = 507692 LIMIT 1 [ RunTime:0.001063s ]
  9. UPDATE `article` SET `lasttime` = 1787313524 WHERE `id` = 507692 [ RunTime:0.010726s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000258s ]
  11. SELECT * FROM `article` WHERE `id` < 507692 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000621s ]
  12. SELECT * FROM `article` WHERE `id` > 507692 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000497s ]
  13. SELECT * FROM `article` WHERE `id` < 507692 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.010725s ]
  14. SELECT * FROM `article` WHERE `id` < 507692 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007482s ]
  15. SELECT * FROM `article` WHERE `id` < 507692 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.024027s ]
0.177678s