当前位置:首页>Linux>Linux服务管理和systemd unit管理

Linux服务管理和systemd unit管理

  • 2026-06-22 12:57:49
Linux服务管理和systemd unit管理

Linux服务管理和systemd unit管理

一、Linux系统的服务介绍

#Linux系统的服务介绍 Linux 系统中,服务(Service)是指在后台运行的程序或进程,它们为系统或用户提供特定的功能和服务。例如,Web 服务器用于提供网页浏览服务,数据库服务器用于存储和管理数据,SSH 服务用于远程连接和管理服务器等。这些服务通常在系统启动时自动启动,并在系统运行期间持续运行,以确保相应的功能始终可用。服务的管理对于系统的稳定性、安全性和性能至关重要。所谓Linux系统的服务,只是运维人员对特定功能的进程进行了抽象定义,抽象定义指的是重新取了一个名称,用于区别于其他的进程。#将进程定义为服务systemd采用独有的unit单元管理,将进程定义为服务,这样就可以使用systemd的管理方法管理进程,而不需要使用kill命令管理进程了。所以说,总结就是服务一定是进程,但是进程不一定是服务,你可以使用常规进程管理的方法来管理服务,但是不建议这种方法,还是建议使用systemd的方式来管理服务。

二、linux系统服务管理

1、systemd的服务管理

一旦进程通过systemd定义成服务之后,就可以通过systemd的方式进行管理,systemd提供了一个systemctl命令来进行服务管理。# find/usr/lib/systemd/system -name "*.service" | wc -l363# find /etc/systemd/system -name "*.service" | wc -l57# 启动/停止/重启服务systemctl start firewalld.servicesystemctl stop firewalld.servicesystemctl restart firewalld.service# 等价于 stop + startsystemctl reload firewalld.service# 仅重载配置(如支持)# 查看服务状态(运行中/失败/已停止)systemctl status firewalld.service# 设置/禁用开机自启systemctl enable firewalld.service# 创建符号链接到 /etc/systemd/system/systemctl disable firewalld.service# 移除符号链接# 检查服务是否已启用systemctl is-active firewalld.servicesystemctl is-enabled firewalld.service# 显示单元文件内容systemctl cat firewalld.service# 查看单元加载路径(优先级覆盖关系)systemctl status firewalld.service |grep Loaded# 列出所有可用单元(包括未加载的)systemctl list-unit-files --type=service# 查看服务依赖树systemctl list-dependencies firewalld.servicesystemctl list-dependencies --reverse firewalld.service# 反向依赖# 临时设置服务资源限制(现在不建议使用)systemctl set-property firewalld.service MemoryMax=512M# 永久设置(创建 override.conf)systemctl edit firewalld.service# 添加内容:[Service]MemoryMax=512M# 重新加载 systemd 管理器配置(修改单元文件后执行)systemctl daemon-reload

2、用户自定义服务

#systemd配置文件位置 每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。 Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。 systemctl enable命令用于在上面两个目录之间,建立符号链接关系。 systemctl enable fireawlld.service等同于ln -s'/usr/lib/systemd/system/firewalld.service''/etc/systemd/system/multi-user.target.wants/firewalld.service'与之对应的,systemctl disable命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。 #Systemd service简介 Systemd Service是systemd提供的用于管理服务启动、停止和相关操作的功能,它极大的简化了服务管理的配置过程,用户只需要配置几项指令即可。相比于SysV的服务管理脚本,用户不需要去编写服务的启动、停止、重启、状态查看等等一系列复杂且有重复造轮子嫌疑的脚本代码了,相信写过SysV服务管理脚本的人都深有体会。所以,Systemd Service是面向所有用户的,即使对于新手用户来说,配置门槛也非常低。 systemd service是systemd所管理的其中一项内容。实际上,systemd service是Systemd Unit的一种,除了Service,systemd还有其他几种类型的unit,比如socket、slice、scope、target等等。在这里,暂时了解两项内容: 1.Service类型,定义服务程序的启动、停止、重启等操作和进程相关属性 2.Target类型,主要目的是对Service(也可以是其它Unit)进行分组、归类,可以包含一个或多个Service Unit(也可以是其它Unit)#Systemd Service Unit介绍 1.[Unit] [Unit]通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系。它的主要字段如下。 Description:简短描述 Documentation:文档地址 Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败 Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败 BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行 Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动 After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动 Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行 Condition...:当前 Unit 运行必须满足的条件,否则不会运行 Assert...:当前 Unit 运行必须满足的条件,否则会报启动失败 2.[Service] [Service]用来 Service 的配置,只有 Service 类型的 Unit 才有这个区块。它的主要字段如下。 Type:定义启动时的进程行为。它有以下几种值。 Type=simple:默认值,执行ExecStart指定的命令,启动主进程 Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出 Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行 Type=dbus:当前服务通过D-Bus启动 Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行 Type=idle:若有其他任务执行完毕,当前服务才会运行 ExecStart:启动当前服务的命令 ExecStartPre:启动当前服务之前执行的命令 ExecStartPost:启动当前服务之后执行的命令 ExecReload:重启当前服务时执行的命令 ExecStop:停止当前服务时执行的命令 ExecStopPost:停止当其服务之后执行的命令 RestartSec:自动重启当前服务间隔的秒数 Restart:定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数 Environment:指定环境变量 3.[Install] [Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动。它的主要字段如下。 WantedBy:它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入/etc/systemd/system目录下面以Target 名 + .wants后缀构成的子目录中 RequiredBy:它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入/etc/systemd/system目录下面以 Target名 + .required后缀构成的子目录中 Alias:当前 Unit 可用于启动的别名 Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit #注意事项 想写一个很好的service unit文件,需要非常熟悉进程的使用,需要熟悉systemd service unit的基本文件语法,需要反复的测试service unit的start/stop/restart/enable/disable等功能是否正常。 我们运维人员大多数情况是不需要写service文件的,只有在一个软件开发初期,并没有官方定义的service文件的情况下,且我们想要在这种情况下使用systemd来管理这个进程的时候才需要写service的unit文件,这种情况比较稀少,现在大多的情况是只要软件安装了,就会有service的unit文件,我们只需要将unit文件放到合适的位置即可。 

三、systemd的unit管理

1、systemd的unit介绍

#Systemd的Unit(单元)介绍 系统初始化需要做的事情非常多。需要启动后台服务,比如启动 sshd 服务;需要做配置工作,比如挂载文件系统(根文件系统已经被内核挂载了)。这个过程中的每一步都被 systemd 抽象为一个配置单元,即 unit。可以认为一个服务是一个配置单元,一个挂载点是一个配置单元,一个交换分区的配置是一个配置单元等等。systemd将根据工作内容将配置单元归纳为一些不同的类型。 [root@bclinuxoe2110-68-61 ~]# systemctl --type help Available unit types: service mount swap socket target device automount timer path slice scope 1.service 管理系统服务(如守护进程),定义服务的启动、停止、重启逻辑。定义服务的依赖关系、启动顺序、资源限制等。 2.socket 管理系统套接字(Socket),用于监听网络连接或文件描述符,触发对应服务的启动。延迟启动服务,仅在有连接请求时激活服务。 3.device 管理系统设备(如硬盘、USB 设备),基于内核 uevent 机制识别设备。定义设备节点的权限、触发规则,或作为其他 Unit 的依赖项。dev-sda1.device(硬盘分区设备)、dev-ttyUSB0.device(串口设备)。自动由内核生成,通常无需手动创建,可通过 udev 规则扩展配置。 4.mount 使用systemd系统时,systemd接管了挂载/etc/fstab的任务。在系统启动的时候,systemd会读取/etc/fstab文件并通过systemd-fstab-generator工具将该文件转换为systemd unit来执行,从而完成挂载任务。systemd扩展了fstab文件的定义方式,在/etc/fstab中可使用由systemd.mount提供的挂载选项,这些选项大多以x-systemd为前缀(并非所有选项都如此),合理使用这些systemd提供的选项,可以完美地解决以前使用/etc/fstab时一些痛点。 5.automount 管理延迟挂载(按需挂载),当访问挂载点时自动触发挂载。减少系统启动时的资源占用,仅在需要时挂载文件系统(如移动硬盘)。 6.swap 管理交换空间(Swap),定义 Swap 分区或文件的激活与关闭。替代传统的 /etc/fstab 配置 Swap,支持动态管理。 7.target 用于逻辑分组 Unit,定义系统启动目标(类似传统的运行级别)。组织多个 Unit 形成启动阶段(如 multi-user.target 表示多用户模式)。 8.timer 基于时间触发服务(类似传统的 cron),定义周期性任务。替代 cron 实现更灵活的定时任务,支持时区、日历事件等。 9.path 监控文件或目录的变化(如创建、修改),触发对应的服务启动。当特定路径发生变化时激活服务,比如监控日志文件写入时触发日志处理服务。 10.scope 动态管理非 Systemd 启动的进程(如手动启动的脚本),纳入 Systemd 管理。临时将外部进程组(如容器内的进程)加入 Systemd 监控,实现资源控制和状态追踪。 11.slice systemd的slice用于将多个相关进程集中管理。这些进程可以是服务单元(service unit)或范围单元(scope unit)。slice并不直接包含进程,而是组建一个层级,并将scope和service放置其中。通过slice,可以针对其管理的进程组添加诸如CPU、内存等系统资源的限制。这样,系统管理员可以更灵活地管理、配置和控制系统资源,确保关键服务得到优先支持,并防止个别服务占用过多资源导致系统崩溃或性能下降。

2、socket unit

#Socket(套接字)介绍 套接字(Socket)是计算机网络中进程间通信(IPC,Inter-Process Communication)的基本工具,用于实现不同设备或同一设备上不同进程之间的数据交换。它是一种抽象的通信端点,定义了通信的协议、地址和端口等要素,是网络编程的核心概念之一。套接字是操作系统提供的一种应用程序编程接口(API-Application Programming Interface),允许应用程序通过网络发送和接收数据。它起源于 Unix 系统,后被广泛应用于 Windows、Linux 等平台。 #Socket核心作用 1.标识通信端点 通过 IP 地址(标识网络中的设备)和 端口号(标识设备上的进程)唯一确定一个通信端点。 2.支持多种协议 可基于不同的网络协议(如 TCP、UDP)实现通信,适配不同的应用场景(如可靠传输、实时传输)。 3.跨设备与跨进程通信 允许同一设备上的不同进程或不同设备之间的数据交互。 #Socket通俗解释 通俗一点解释,Socket就是一个IP加上端口和协议,可以将Socket绑定到一个进程上,这样如果你想访问一个带Socket的进程,可以借助IP,端口,协议来访问到该进程。 1.客户端可以使用客户端软件访问到带Socket的进程。 2.其他进程也可以创建Socket然后访问到另外一个带Socket的进程,这种一般都是跨设备访问。 3.同一设备内的Socket通信除了跨设备通信,同一台电脑上的进程也能用Socket通信,此时不需要IP,只需文件路径(类似于同一房间内传纸条,其他房间需要按门铃),这样进程通信效率会更高。 #Systemd的Socket Unit 所谓的按需启动,其实是systemd下的socket配置单元,其命名规则以.socket为后缀,主要服务于套接字模式的启动。我们配置socket后,systemd会替我们监听端口,当访问该端口的时候,systemd会启动后端实例,并且将请求转发至该实例,后端完成需求后,由systemd销毁该实例来到按需启动的效果。 注意,如果想接入socket,开发人员编写的业务就不能再对外监听套接字了,虽然systemd不会卡这个,但是不符合按需启动的逻辑,所以,程序员写的业务,想要接入systemd需要修改其代码,修改为符合systemd socket规则的,换句话说,服务器监听由systemd来替进程做了,所以程序员只用关心其业务逻辑即可。 当使用systemd按需启动某套接字进程后,其图示大致如下: 

当需要访问该服务时候,systemd会接收请求流量,而后启动后端真实的服务,最后转发该流量,并且关闭原始套接字创建新的套接字,图示如下:

#查看systemd socket类型的unit文件 systemctl list-unit-files --type socket

3、slice unit

#systemd slice介绍 systemd slice 是 Linux 系统中 systemd 服务管理器 的一个核心概念,用于对系统资源(CPU、内存、IO 等)进行分组、隔离和优先级控制。 通过将进程和服务划分为不同的 slice,可以实现精细化的资源管理,确保关键服务获得足够资源,避免被其他进程过度消耗。 slice 是一种特殊的 systemd 单元(Unit),类型为 .slice,用于组织和管理进程组(即 cgroup)。 每个 slice 可以包含多个 服务(service)、套接字(socket) 或 其他 slice,形成树形层级结构。 #systemd slice作用 1.资源隔离 限制特定 slice 内进程的资源使用上限(如内存、CPU 时间)。 2.优先级分配 为不同 slice 分配不同的资源权重,确保关键服务优先运行。 3.层级管理 通过树形结构组织进程,便于统一控制(如暂停、恢复整个 slice)。 #查看systemd slice unit文件 [root@centos79-68-98 ~]# systemctl list-unit-files --type slice UNIT FILESTATE-.slicestatic machine.slice static system.slicestatic user-0.slicestatic user.slicestatic 5 unit files listed. #常见slice层级结构说明 1.根层级(-.slice) 所有进程的顶级父 slice,由 systemd 自动创建。 2.系统服务(system.slice) 包含系统核心服务和自定义服务。 3.用户会话(user.slice) 按用户 UID 划分子 slice(如 user-1000.slice),每个用户会话对应一个 session-*.scope。 4.容器 / 虚拟机(machine.slice) 由容器引擎(如 Docker)或虚拟机管理工具自动创建,用于隔离容器内的进程。 #systemd slice资源隔离的底层原理-cgroups简单介绍 systemd slice 的资源隔离功能基于 Linux 内核的 cgroups(Control Groups) 机制实现。理解其底层原理需要从cgroups、命名空间(Namespaces)和 systemd 的集成设计。 Control Groups,是 Linux 内核自 2.6.24 版本引入的特性。可以限制进程组(如 CPU、内存、IO 带宽)的使用上限,通过权重(Weight)分配不同进程组的资源使用比例,统计资源使用量(如 CPU 时间、内存用量),批量挂起、恢复或终止进程组。 cgroups不同的子系统负责不同资源的控制: cpu负责CPU 时间分配(通过 cpu.shares 权重或 cpu.cfs_quota_us 硬限制)。 memory负责内存使用限制(memory.limit_in_bytes)。 blkio负责块设备 IO 限制(如磁盘读写速度)。 net_cls负责网络流量分类(标记网络包,配合 TC 进行流量控制)。 #systemd slice配置示例 1.创建/etc/systemd/system/firewalld.slice文件 [Unit] Description=My Application Slice Before=slices.target [Slice] CPUWeight=200# CPU 权重(默认 100,值越高优先级越高) MemoryMax=512M# 内存使用上限 IOWeight=300# IO 带宽权重 TasksMax=1000# 最大进程数限制 2.将服务加入slice 在服务配置文件(如 /etc/systemd/system/firewalld.service)中添加 [Service] Slice=firewalld.slice# 指定所属 slice 3.重载并激活 systemctl daemon-reload systemctl restart firewalld.slice systemctl restart firewalld.service #查看资源限制 systemctl list-units --type=slice# 列出所有 slice systemd-cgls# 查看 cgroup 层级结构(树状视图) systemd-cgtop# 实时监控各 slice 的资源使用 #systemd slice资源限制参数

4、target unit

#systemd的target介绍 启动计算机的时候,需要启动大量的 Unit。如果每一次启动,都要一一写明本次启动需要哪些 Unit,显然非常不方便。Systemd 的解决方案就是 Target。 简单说,Target 就是一个 Unit 组,包含许多相关的 Unit 。启动某个 Target 的时候,Systemd 就会启动里面所有的 Unit。从这个意义上说,Target 这个概念类似于"状态点",启动某个 Target 就好比启动到某种状态。 传统的init启动模式里面,有 RunLevel 的概念,跟 Target 的作用很类似。不同的是,RunLevel 是互斥的,不可能多个 RunLevel 同时启动,但是多个 Target 可以同时启动。 1.查看当前系统的所有 Target systemctl list-unit-files --type=target 2.查看一个 Target 包含的所有 Unit systemctl list-dependencies multi-user.target 3.查看启动时的默认 Target systemctl get-default 4.设置启动时的默认 Target systemctl set-default multi-user.target 5.切换 Target 时,默认不关闭前一个 Target 启动的进程,systemctl isolate 命令改变这种行为,关闭前一个 Target 里面所有不属于后一个 Target 的进程 systemctl isolate multi-user.target #Target与传统RunLevel的对应关系如下。 Traditional runlevelNew target nameSymbolically linked to... Runlevel 0|runlevel0.target-> poweroff.target Runlevel 1|runlevel1.target-> rescue.target Runlevel 2|runlevel2.target-> multi-user.target Runlevel 3|runlevel3.target-> multi-user.target Runlevel 4|runlevel4.target-> multi-user.target Runlevel 5|runlevel5.target-> graphical.target Runlevel 6|runlevel6.target-> reboot.target #systemd的isolate  systemd 中,systemctl isolate是一个用于切换系统运行状态的命令,其核心作用是激活指定的 target 单元,并停止与之无关的所有其他单元。这类似于传统 SysVinit 系统中的 telinit 命令(如 telinit 3 切换到运行级别 3),但在 systemd 中,这种切换基于target单元而非运行级别。 当执行 systemctl isolate <target> 时,systemd 会激活指定的 target,启动该 target 中定义的所有依赖单元。停止无关单元,关闭当前运行但不在新 target 中的所有单元。保持必要服务,不会停止被新 target 依赖的服务(如 systemd 自身、日志服务等)。 #典型使用场景 systemctl isolate multi-user.target systemctl isolate rescue.target systemctl isolate emergency.target systemctl isolate target切换到指定 target,停止无关服务(类似传统 telinit N)。 systemctl start target启动 target 及其依赖服务,但不停止当前运行的其他服务。 systemctl set-default target设置系统默认启动的 target(下次重启生效),但不立即切换。 #注意事项 isolate会直接停止当前运行的服务,可能导致数据丢失(如未保存的文件),建议谨慎使用。 isolate poweroff.target等同于 systemctl poweroff(关机)。 isolate reboot.target等同于 systemctl reboot(重启)。 systemctl isolate 是一个强大但需谨慎使用的命令,主要用于快速切换系统运行状态(如从图形界面切换到文本模式或进入救援模式)。它通过激活指定的 target 单元并停止无关服务,实现系统状态的高效转换,适用于系统维护、故障修复等场景。 #systemd-analyzr命令 使用systemd-analyze blame可分析开机启动各服务占用的时长 使用systemd-analyze time从内核启动开始至开机结束所花时间

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 09:36:43 HTTP/2.0 GET : https://f.mffb.com.cn/a/488029.html
  2. 运行时间 : 0.193927s [ 吞吐率:5.16req/s ] 内存消耗:4,715.23kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a33401299f51bcee5fe8c637dd7fa043
  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.000893s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001572s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000710s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000728s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001388s ]
  6. SELECT * FROM `set` [ RunTime:0.000628s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001449s ]
  8. SELECT * FROM `article` WHERE `id` = 488029 LIMIT 1 [ RunTime:0.003895s ]
  9. UPDATE `article` SET `lasttime` = 1783129003 WHERE `id` = 488029 [ RunTime:0.019099s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000673s ]
  11. SELECT * FROM `article` WHERE `id` < 488029 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001382s ]
  12. SELECT * FROM `article` WHERE `id` > 488029 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001123s ]
  13. SELECT * FROM `article` WHERE `id` < 488029 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006810s ]
  14. SELECT * FROM `article` WHERE `id` < 488029 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003811s ]
  15. SELECT * FROM `article` WHERE `id` < 488029 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006137s ]
0.198222s