吃透 Linux 监控 + systemd:stress 压测、自定义服务全实操手册
监控系统负载系统负载介绍系统负载平均值Linux内核以活动请求数的指数移动平均值来表示。活动请求数不仅包含运行中进程还包含等待IO的进程对应于R和D。等待IO包括处于睡眠等待预期磁盘和网络响应的任务。指数移动平均值是一个数学公式可以平滑趋势数据的高值和低值更加准确地表示一段时间内系统负载并确定系统负载是随着时间增加还是减少。根据所有CPU活动请求数每5秒计算一次Load Average。通过汇总这些值可以得到最近1分钟5分钟和15分钟内的指数移动平均值。一些UNIX系统仅考虑CPU使用率或运行队列长度。Linux中负载平均值中还包含了对IO的考量遇到负载平均值很高但CPU活动很低时检查磁盘和网络活动。Linux将各个物理CPU核心和微处理器超线程计为独立执行单元。每个独立的执行单元拥有独立的请求队列。stress 工具Linux 中的stress工具用于对系统进行压力测试可模拟 CPU、内存、I/O 和磁盘等资源的高负载状态。通过指定参数如-c压 CPU、-m压内存可创建负载帮助发现系统在压力下的稳定性问题常用于性能调优或硬件验证。# 安装[rootcentos7 ~]# yum install -y stress# 帮助信息[rootcentos7 ~14:15:51]# stress --helpstress imposes certain types of compute stress on your system Usage: stress[OPTION[ARG]]... -?,--helpshow thishelpstatement--versionshow version statement -v,--verbosebe verbose -q,--quietbe quiet -n, --dry-run show what would have beendone-t,--timeoutNtimeoutafter N seconds--backoffNwaitfactor of N microseconds before work starts -c,--cpuN spawn N workers spinning on sqrt()-i,--ioN spawn N workers spinning on sync()-m,--vmN spawn N workers spinning on malloc()/free()--vm-bytes B malloc B bytes per vm worker(default is 256MB)--vm-stride Btoucha byte every B bytes(default is4096)--vm-hang NsleepN secs beforefree(default none,0is inf)--vm-keep redirty memory instead of freeing and reallocating -d,--hddN spawn N workers spinning on write()/unlink()--hdd-bytes BwriteB bytes per hdd worker(default is 1GB)Example: stress--cpu8--io4--vm2--vm-bytes 128M--timeout10s Note: Numbers may be suffixed with s,m,h,d,y(time)or B,K,M,G(size).压力测试-CPU# 消耗2个CPU[rootcentos7 ~14:17:19]# stress -c 2stress: info:[2595]dispatching hogs:2cpu,0io,0vm,0hdd ctrlc 退出# top 监控top-14:18:22 up47min,2users, load average:1.37,0.50,0.47Tasks:187total,4running,183sleeping,0stopped,0zombie %Cpu(s):100.0 us,0.0sy,0.0ni,0.0id,0.0wa,0.0hi,0.0si,0.0st KiB Mem:4026124total,1535676free,490668used,1999780buff/cache KiB Swap:4063228total,4063228free,0used.3277584avail Mem PIDUSERPR NI VIRT RES SHR S %CPU %MEM TIME COMMAND2596root20073121000R100.00.01:01.42 stress2597root20073121000R100.00.01:01.25 stress2594root20016210023201588R0.60.10:00.12top......压力测试-内存# 消耗前内存# 在一个终端查看[rootcentos7 ~14:21:06]# free -mtotal usedfreeshared buff/cache available Mem:393147815001419523201Swap:396703967# 在新的终端中输入命令# 消耗 1G 内存[rootcentos7 ~14:19:11]# stress -m 1 --vm-bytes 1Gstress: info:[2623]dispatching hogs:0cpu,0io,1vm,0hdd 按CTRLc 退出# 在第一个终端下查看# 消耗后内存[rootcentos7 ~14:21:44]# free -mtotal usedfreeshared buff/cache available Mem:393114035751419522274Swap:396703967压力测试-磁盘# 消耗磁盘IO[rootcentos7 ~]# stress -d 1 --hdd-bytes 2GCTRLc# 监视活动状态百分比%util[rootcentos7 ~]# yum install -y sysstat iotop# 在另一个终端查看# 监控磁盘读写速度重点关注rd_sec/s和wr_sec/s单位是0.5k/每秒,每个secsector是512Byte。[rootcentos7 ~]# sar -dp 1......14时23分29秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util14时23分30秒 sda2699.000.002762752.001023.626.112.260.2979.5014时23分30秒 sr00.000.000.000.000.000.000.000.0014时23分30秒 centos-root2698.000.002761728.001023.626.112.260.2979.5014时23分30秒 centos-swap0.000.000.000.000.000.000.000.0014时23分30秒 centos-home0.000.000.000.000.000.000.000.00......# 监控进程读写左右方向键调整排序列 代表当前排序列[rootcentos7 ~]# iotopTotal DISK READ:0.00B/s|Total DISK WRITE:51.90M/s Actual DISK READ:0.00B/s|Actual DISK WRITE:62.16M/s TID PRIOUSERDISK READ DISK WRITESWAPIN IO COMMAND4573be/4 laoma0.00B/s51.90M/s0.00%96.45% stress-d1--hdd-bytes 2G1be/4 root0.00B/s0.00B/s0.00%0.00% systemd --switched-root--system--deserialize222be/4 root0.00B/s0.00B/s0.00%0.00%[kthreadd]4be/0 root0.00B/s0.00B/s0.00%0.00%[kworker/0:0H]6be/4 root0.00B/s0.00B/s0.00%0.00%[ksoftirqd/0]7rt/4 root0.00B/s0.00B/s0.00%0.00%[migration/0]8be/4 root0.00B/s0.00B/s0.00%0.00%[rcu_bh]9be/4 root0.00B/s0.00B/s0.00%0.00%[rcu_sched]10be/0 root0.00B/s0.00B/s0.00%0.00%[lru-add-drain]11rt/4 root0.00B/s0.00B/s0.00%0.00%[watchdog/0]12rt/4 root0.00B/s0.00B/s0.00%0.00%[watchdog/1]13rt/4 root0.00B/s0.00B/s0.00%0.00%[migration/1]14be/4 root0.00B/s0.00B/s0.00%0.00%[ksoftirqd/1]...网络测试# 传送一个大size的文件[rootcentos7 ~14:27:17]# wget http://192.168.43.100/isos/CentOS-7-x86_64-DVD-2207-02.iso# 监控带宽[rootcentos7 ~14:29:13]# sar -n DEV 1......14时29分07秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s14时29分08秒 ens3269961.005404.0096338.71513.950.000.000.0014时29分08秒 lo0.000.000.000.000.000.000.0014时29分08秒 virbr0-nic0.000.000.000.000.000.000.0014时29分08秒 virbr00.000.000.000.000.000.000.00......监控总结以下是针对 Linux 系统监控的几条实用建议涵盖关键监控维度和最佳实践核心指标实时监控重点跟踪 CPU 使用率用户态 / 系统态占比、内存占用含缓存 /swap 使用率、磁盘 I/O读写吞吐量、IOPS和网络流量带宽利用率、连接数。可通过top/htop实时、vmstat/iostat系统级等工具快速查看。部署专业监控工具对于服务器集群或长期监控需求建议使用 Prometheus Grafana可视化强、Zabbix全功能监控或 Nagios轻量告警等工具实现指标集中收集、趋势分析和历史数据查询。设置关键阈值告警针对核心指标配置告警阈值如 CPU 持续 5 分钟超 80%、磁盘空间不足 10%通过邮件、短信或即时通讯工具推送告警避免故障扩大。注意避免告警风暴可设置告警合并或延迟。监控进程与服务状态定期检查关键服务如 Nginx、MySQL的运行状态、进程数及资源消耗可通过systemctl status或自定义脚本实现。对异常退出的进程结合日志排查崩溃原因。日志集中管理与分析将系统日志/var/log/messages、应用日志集中存储如使用 ELK 栈关注错误信息ERROR级别、登录异常/var/log/auth.log和磁盘错误dmesg | grep error必要时配置日志告警规则。磁盘健康监控除空间使用率外需关注磁盘坏块smartctl工具检测 S.M.A.R.T 信息和文件系统完整性定期运行fsck非挂载状态下避免硬件故障导致数据丢失。网络与安全监控监控端口开放状态netstat/ss、异常连接尤其是外部 IP 的高频访问和防火墙规则生效情况。可结合tcpdump抓包分析可疑流量。定期性能基线分析记录系统正常运行时的指标基线如平均负载、内存使用峰值当指标偏离基线时及时排查避免微小异常累积成故障。自动化监控脚本对个性化需求如特定目录文件数、应用响应时间编写 Shell 或 Python 脚本定期执行检查输出结果至监控系统或直接触发告警。监控权限与安全限制监控工具的权限如仅授予读取日志和指标的权限加密传输监控数据防止监控系统本身成为安全薄弱点。通过分层监控基础指标→服务状态→业务性能和主动预警可显著提升系统稳定性和故障响应效率。Linux 服务管理systemd 介绍基本概念CentOS 7 使用 Systemd 引导系统启动速度最快所有进程无论有无依赖关系则都是并行启动很多时候进程没有真正启动而是只有一个信号或者说是标记而已在真正利用的时候才会真正启动。Systemd为了解决上文的问题而诞生。它的目标是为系统的启动和管理提供一套完整的解决方案。服务从业务角度来称呼例如 web 服务数据库服务。守护进程daemonweb 服务器对外提供 web 服务由 web 相关的进程提供支持。例如systemctl是一个在Linux系统中用于管理系统服务的命令。# 安装软件包[rootcentos7 ~]# yum install -y httpd# 启动服务[rootcentos7 ~]# systemctl start httpd# 查看进程[rootcentos7 ~]# ps axf|tail......18090? Ss0:00 /usr/sbin/httpd-DFOREGROUND18095? S0:00\_ /usr/sbin/httpd-DFOREGROUND18096? S0:00\_ /usr/sbin/httpd-DFOREGROUND18097? S0:00\_ /usr/sbin/httpd-DFOREGROUND18098? S0:00\_ /usr/sbin/httpd-DFOREGROUND18099? S0:00\_ /usr/sbin/httpd-DFOREGROUNDhttpd 服务对应的守护进程是18090、18095…systemd 架构unit 类型systemctl 命令用于管理不同类型的系统对象这些对象称之为units。Service unit用于定义系统服务文件扩展名为**.service**例如httpd.serviceSocket unit用于标识进程间通信用的 socket文件文件扩展名为.socketTarget unit用于模拟实现“运行级别”文件扩展名为.targetTimer unit用于管理计划任务文件扩展名为.timerDevice unit用于定义内核识别的设备文件扩展名为.deviceMount unit用于定义文件系统挂载点文件扩展名为.mountSnapshot unit管理系统快照文件扩展名为.snapshotSwap unit用于标识swap设备文件扩展名为.swapAutomount unit文件系统的自动挂载点文件扩展名为.automountPath unit用于根据文件系统上特定对象的变化来启动其他服务文件扩展名为.pathSlice unit用于资源管理文件扩展名为.slicesystemctl的语法和常用选项要使用systemctl命令可以按照以下语法systemctl[选项][命令][服务名称]常用选项包括-h显示帮助信息-t TYPE指定服务类型如service、socket、device等查看 unit 列表信息# 列出状态为loaded units[rootcentos7 ~]# systemctl list-unitssystemctl list-units命令输出说明UNIT服务单元名称。LOADsystemd是否正确解析了单元的配置并将该单元加载到内存中。ACTIVE单元的高级别激活状态。此信息表明单元是否已成功启动。SUB单元的低级别激活状态。此信息指示有关该单元的更多详细信息。信息视单元类型、 状态以及单元的执行方式而异。DESCRIPTION单元的简短描述。# -t选项查看特定类型unit 清单[jhlcentos7 ~]$ systemctl list-units-ttimer UNIT LOAD ACTIVE SUB DESCRIPTION systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Directories unbound-anchor.timer loaded active waiting daily update of the root trust anchorforDNSSEC LOADReflects whether the unit definition was properly loaded. ACTIVEThe high-level unit activation state, i.e. generalization of SUB. SUBThe low-level unit activation state, values depend on unit type.2loadedunitslisted. Pass--allto see loaded but inactive units, too. To show all installed unit files usesystemctl list-unit-files.# 列出类型为service状态为active和inactive unit# 不加 -all 默认只会展示 active活跃 的服务单元# --all 全称--all-units 作用展示所有类型状态的 service 服务包含未启动、失效、被mask屏蔽、加载失败的全部服务不再过滤隐藏。[rootcentos7 ~]# systemctl list-units --type service --allUNIT LOAD ACTIVE SUB DESCRIPTION abrt-ccpp.service loaded active exited Install ABRT coredump hook abrt-oops.service loaded active running ABRT kernel log watcher abrt-vmcore.service loaded inactive dead Harvest vmcoresforABRT abrt-xorg.service loaded active running ABRT Xorg log watcher abrtd.service loaded active running ABRT Automated Bug Reporting accounts-daemon.service loaded active running Accounts Service ● apparmor.service not-found inactive dead apparmor.service# 列出所有unit包括未loaded的unit[rootcentos7 ~]# systemctl list-unit-files# 查看失败的服务[rootcentos7 ~]# systemctl --failed --type service查看单个 unit 信息# status 是 systemctl 的查询子命令专门用于查看单个服务的完整运行状态[jhlcentos7 ~]$ systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded(/usr/lib/systemd/system/sshd.service;enabled;vendor preset: enabled)Active:active(running)since 三2022-11-09 08:45:45 CST;5h 50min ago Docs: man:sshd(8)man:sshd_config(5)Main PID:1167(sshd)Tasks:1CGroup: /system.slice/sshd.service └─1167 /usr/sbin/sshd-D关键字概述loaded单元配置文件已处理active(running)正在运行active(exited)已成功完成一次性配置active(waiting)运行中正在等待事件inactive不再运行enabled系统引导时启动disabled系统引导时不启动static无法启动依赖其他单元启动控制系统服务命令任务systemctl statusUNIT查看单元状态的详细信息。systemctl stopUNIT在运行中的系统上停止一项服务。systemctl startUNIT在运行中的系统上启动一项服务。systemctl restartUNIT在运行中的系统上重新启动一项服务。systemctl reloadUNIT重新加载运行中服务的配置文件。systemctl maskUNIT禁用服务使其无法手动启动或在系统引导时启动。systemctl unmaskUNIT使屏蔽的服务变为可用。systemctl enableUNIT将服务配置为在系统引导时启动。使用--now选项也会启动该服务。systemctl disableUNIT禁止服务在系统引导时启动。使用--now选项也会停止该服务。# 停止服务[rootcentos7 ~]# systemctl stop sshd.service# 客户端连接测试[rootcentos7 ~]# ssh jianghuilin10.1.8.10ssh: connect tohost10.1.8.10 port22: Connection refused# 启动服务[rootcentos7 ~]# systemctl start sshd.service# 客户端连接测试[rootcentos7 ~]# ssh jianghuilin10.1.8.10# 重启服务相当于stop再start[rootcentos7 ~]# systemctl restart sshd.service# 一般用于配置文件变动后重新加载[rootcentos7 ~]# systemctl reload sshd.service# 重新加载服务服务对应的主进程不会重启只会重新加载一次配置文件。systemctl reload sshd重载配置 不会杀掉正在运行的 sshd 主 PID 所有已经连上服务器的 SSH 会话保持在线不会掉线 只重新读取 /etc/ssh/sshd_config 新配置 新的 SSH 连接才会生效新配置老连接沿用旧参数# 禁止服务开机自启[rootcentos7 ~]# systemctl disable sshd.service[rootcentos7 ~]# systemctl is-enabled sshddisabled# 重启系统验证[rootcentos7 ~]# reboot# 重启完成后直接用 Xshell 连接会报 Connection refused# 操作流程# 机房控制台 / 虚拟机本地登录服务器# 执行 systemctl start sshd 启动 ssh 服务# 回到 Xshell手动双击会话重新连接。[rootcentos7 ~]# systemctl status sshd# 显示 inactive (dead) 证明开机没有自动启动ssh服务# 再次确认开机自启配置[rootcentos7 ~]# systemctl is-enabled sshd# 依旧输出 disabled# 启动 ssh 服务[rootcentos7 ~]# systemctl start sshd# 设置服务开机自启[rootcentos7 ~]# systemctl enable sshd.service[rootcentos7 ~]# systemctl is-enabled sshdenabled# 重启系统验证[rootcentos7 ~]# reboot# 依然需要手动点击 Xshell 会话重新连接# 屏蔽禁用服务服务被屏蔽禁用后将无法start因为服务的配置文件指向/dev/null[rootcentos7 ~]# systemctl mask sshd.service[rootcentos7 ~]# systemctl status sshd.servicesshd.service Loaded: masked(/dev/null;bad)Active: active(running)since 三2026-07-2218:58:25 CST;10min ago......# 尝试手动启动 sshd[rootcentos7 ~19:08:54]# systemctl start sshdFailed to start sshd.service: Unit is masked.# 查看开机自启状态[rootcentos7 ~19:10:13]# systemctl is-enabled sshdmasked# 取消禁用[rootcentos7 ~]# systemctl unmask sshd.service[rootcentos7 ~]# systemctl status sshd.servicesshd.service - OpenSSH server daemon Loaded: loaded(/usr/lib/systemd/system/sshd.service;enabled;vendor preset: enabled)Active: active(running)since 三2026-07-2218:58:25 CST;14min ago Docs: man:sshd(8)man:sshd_config(5)......[rootcentos7 ~19:10:13]# systemctl is-enabled sshdenabledunit 配置文件unit 配置文件存放在多个位置/etc /systemd/system/unit.service优先生效。一般是管理员自定义的配置。/usr/lib /systemd/system/unit.service其次生效。系统软件包自带的默认配置。sshd、httpd 在这里配置文件说明示例单元文件/usr/lib/systemd/system/sshd.service说明# 标识该部分为 Unit 配置用于描述服务的基本信息、依赖关系等。 [Unit] # 服务的描述信息说明这是 OpenSSH 服务器守护进程便于管理员识别服务用途。 DescriptionOpenSSH server daemon # 指定服务的文档路径这里指向 sshd 命令的手册页man 8 sshd和配置文件的手册页man 5 sshd_config方便用户查阅帮助。 Documentationman:sshd(8) man:sshd_config(5) # 定义服务的启动顺序sshd 服务必须在 network.target网络服务就绪和 sshd-keygen.serviceSSH 密钥生成服务之后启动确保依赖的资源已准备好。 Afternetwork.target sshd-keygen.service # 表示 sshd 服务 希望 sshd-keygen.service 运行但不是强制依赖。如果 sshd-keygen.service 启动失败sshd 仍会尝试启动通常用于生成初始 SSH 密钥若密钥已存在则不影响。 Wantssshd-keygen.service # 标识该部分为 Service 配置用于定义服务的启动方式、执行命令、重启策略等。 [Service] # 定义服务的类型为 notify表示服务启动后会主动通知 systemd 自己已就绪通过 sd_notify() 函数systemd 会等待这个通知后再继续后续流程确保服务真正可用。 Typenotify # 指定环境变量文件的路径/etc/sysconfig/sshd 中通常定义 OPTIONS 等变量如额外的 sshd 启动参数这些变量会被后续的 ExecStart 引用。 EnvironmentFile/etc/sysconfig/sshd # 服务启动时执行的命令 ExecStart/usr/sbin/sshd -D $OPTIONS # /usr/sbin/sshdsshd 守护进程的可执行文件路径。 # -D表示 sshd 以非守护进程模式运行前台运行因为 systemd 通常管理前台进程便于监控。 # $OPTIONS引用 EnvironmentFile 中定义的额外参数如 -p 2222 指定端口。 # 服务重载配置时执行的命令 ExecReload/bin/kill -HUP $MAINPID # kill -HUP 发送 SIGHUP 信号给 sshd 主进程使其重新加载配置文件无需重启服务。 # $MAINPID 是 systemd 自动维护的服务主进程 ID。 # 定义服务停止时的杀死模式process 表示只杀死服务的主进程sshd 主进程其子进程如已建立的 SSH 连接会被保留避免强制中断现有连接。 KillModeprocess # 定义服务的重启策略当服务因非正常退出如崩溃、信号终止时systemd 会自动重启服务正常退出如主动停止则不重启。 Restarton-failure # 服务重启前的等待时间这里设置为 42 秒避免频繁重启导致资源耗尽。 RestartSec42s # 标识该部分为 Install 配置用于定义服务如何被 启用即系统启动时自动运行。 [Install] # 表示当系统启动到 multi-user.target多用户命令行模式非图形界面时该服务会被自动启动。这是服务器的默认运行级别确保 SSH 服务在系统启动后可用。 WantedBymulti-user.target开发一个 study 服务开发 studyd 服务主程序 study脚本说明这是一个无限循环的脚本每 5 秒会向/var/log/study.log文件中追加一行包含当前时间的日志内容为[时间]: IM studying [ Linux ]。实验中提高效率的小技巧1Vim 清空文件全部内容进入普通模式按 Esc输入命令ggdG拆解讲解gg 跳到文档第一行d 删除G 跳到文档最后一行合起来光标到首行删除从首行到末行所有内容。操作顺序Esc → 直接敲 ggdG回车都不需要2Vim 内部复制粘贴文件内复制一大段文字可视化选中复制光标移动到要复制段落第一行按下 V 大写 V 行可视化模式按上下方向键选中需要复制的全部内容按下 y yank 复制移动光标到目标位置按下 p 粘贴粘贴到光标下方大写 P 粘贴到光标上方3将外面的内容复制到vim打开的文件中要进入插入模式否则内容会缺失[rootcentos7 ~16:15:19]# vim /usr/local/bin/study#!/bin/bash# 第一行内容是脚本的 解释器声明shebang指定该脚本使用 /bin/bash 作为解释器执行。系统会根据这一行找到对应的 shell 程序来解析后续命令。# 启动一个无限循环while 是循环关键字true 是一个永远为真的条件因此这个循环会一直执行下去直到被外部终止如 CtrlC。whiletrue# 循环体的开始标记do 和后面的 done 之间的内容是循环中重复执行的命令。do# 执行 date 命令获取当前系统时间并通过 $(...) 捕获其输出将结果赋值给变量 DATE。DATE$(date)# echo 命令输出字符串其中 $DATE 会被替换为变量的值# 是追加重定向符号将输出内容追加到 /var/log/study.log 文件中# 最终输出内容类似 Fri Oct 31 10:00:00 CST 2025: IM studying [ Linux ]。echo$DATE: IM studying [ Linux ]/var/log/study.log# 让脚本暂停执行 5 秒sleep 命令用于延迟单位默认为秒避免循环执行过快。sleep5# 循环体的结束标记与前面的 while 和 do 配合标志着一次循环的结束。done# 给脚本添加可执行权限如果不加系统无法运行这个脚本[rootcentos7 ~16:24:17]# chmod x /usr/local/bin/study创建 studyd 服务单元文件# 复制现成sshd服务模板省去手动敲完整格式# sshd.service是系统自带标准服务配置拿来做模板非常方便[rootcentos7 ~16:25:51]# cp /usr/lib/systemd/system/sshd.service \/etc/systemd/system/studyd.service[rootcentos7 ~16:26:32]# vim /etc/systemd/system/studyd.service[Unit] Descriptionstudy server daemon [Service] ExecStart/usr/local/bin/study [Install] WantedBymulti-user.target关键命令刷新 systemd 配置重中之重新手极易遗忘# systemd会把所有服务配置缓存到内存# 新建/修改.service文件后必须执行daemon-reload刷新缓存# 不执行这条命令systemd看不见新服务# 通知 systemd 读取 unit 变化[rootcentos7 ~16:26:36]# systemctl daemon-reload# 启用并启动服务 --now额外立即启动服务[rootcentos7 ~16:28:29]# systemctl enable studyd --now# 查看服务状态[rootcentos7 ~16:28:34]# systemctl status studyd● studyd.service - study server daemon Loaded: loaded(/etc/systemd/system/studyd.service;enabled;vendor preset: disabled)Active:active(running) since 五2026-7-2216:28:34 CST;1s ago 代表服务正常运行 Main PID:2786(study)Tasks:2CGroup: /system.slice/studyd.service ├─2786 /bin/bash /usr/local/bin/study └─2788sleep57月2216:28:34 centos7.laoma.cloud systemd[1]: Started study server daemon.# 重启服务才能读取配置文件[rootcentos7 ~15:21:40]# systemctl restart studyd.service补充修改.service 配置文件之后需要两条操作生效systemctl daemon-reload→systemctl restart studyd.service验证日志# tail -f实时持续跟踪日志文件新增内容# 观察是否每隔5秒自动打印一行日志证明服务正常循环运行[rootcentos7 ~16:28:36]# tail -f /var/log/study.log2026年 07月22日 星期三22:44:59 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 22:45:04 CST: IM studying[Linux]2026年 07月22日 星期三22:45:09 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 22:45:14 CST: IM studying[Linux]2026年 07月22日 星期三22:45:19 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 22:45:24 CST: IM studying[Linux]daemon-reload到底干什么简单类比浏览器刷新页面。systemd 启动时一次性读取所有 service 文件存入内存后续新建、修改配置文件内存里还是旧数据。执行daemon-reload重新扫描磁盘上所有服务配置更新内存缓存。❗注意daemon-reload 不会重启任何服务只是刷新配置清单。

相关新闻

TM4C1299NCZAD低功耗设计:睡眠模式时钟门控寄存器(SCGCx/DCGCx)配置详解

TM4C1299NCZAD低功耗设计:睡眠模式时钟门控寄存器(SCGCx/DCGCx)配置详解

1. 项目概述与核心价值在嵌入式开发,尤其是电池供电的物联网设备、便携式医疗仪器或远程传感器节点中,功耗管理从来都不是一个“锦上添花”的选项,而是决定产品成败的核心指标。我们常常需要在有限的电池容量下,让设备运行数月甚至…

2026/7/23 2:02:03 阅读更多 →
HideRarInImage:图片中隐匿 RAR 文件的高效隐藏器将压缩包藏身于图片之中,私密数据隐形守护者

HideRarInImage:图片中隐匿 RAR 文件的高效隐藏器将压缩包藏身于图片之中,私密数据隐形守护者

大家好,我是大飞哥。在日常文件管理与传输过程中,我们常会遇到这样的两难处境:一些涉及个人隐私、商业机密或敏感内容的压缩包,直接存放在电脑里怕被他人无意看到,通过网盘或即时通讯工具发送又担心被拦截或泄露&#…

2026/7/23 2:02:03 阅读更多 →
AI智能体工具设计:核心原则与工程实践

AI智能体工具设计:核心原则与工程实践

1. 理解Agent Tools的本质与价值Agent Tools并非简单的API封装,而是为AI智能体设计的专用接口。传统软件开发中,我们习惯于为确定性的系统编写函数——相同的输入必然产生相同的输出。但AI智能体是非确定性的存在,同样的工具调用可能因上下文…

2026/7/23 2:02:03 阅读更多 →

最新新闻

区块链助记词原理与安全存储实战指南

区块链助记词原理与安全存储实战指南

1. 助记词:数字资产的终极防线第一次接触助记词时,我犯了个低级错误——把12个单词记在手机备忘录里。直到某天手机丢失,我才真正理解"助记词是你的数字资产终极钥匙"这句话的分量。助记词不是普通的密码,它是区块链世界…

2026/7/23 2:37:16 阅读更多 →
从月均个位数咨询到133条/月!某三坐标公司的百度SEM逆袭全记录

从月均个位数咨询到133条/月!某三坐标公司的百度SEM逆袭全记录

在实现月均133个高质量咨询​的亮眼成绩之前,这家专注于三坐标测量仪与尼康三坐标的精密机械企业,曾深陷线上推广的泥潭。其困境是许多工业品企业的缩影。 🔍 困境剖析:钱花了,线索呢? 在启动SEM推广初期&a…

2026/7/23 2:37:16 阅读更多 →
Maestro 移动 UI 自动化测试入门教程

Maestro 移动 UI 自动化测试入门教程

Maestro 移动 UI 自动化测试入门教程 本文带你从零开始掌握 Maestro —— 一款开源的跨平台移动 UI 自动化测试框架。涵盖安装配置、YAML 测试流编写、核心命令、选择器、高级用法及实战案例,让你 10 分钟写出第一条自动化测试。 一、Maestro 是什么? M…

2026/7/23 2:37:16 阅读更多 →
智能降维在量化交易中的应用:解决高维数据过拟合问题

智能降维在量化交易中的应用:解决高维数据过拟合问题

在金融科技和人工智能的交汇点上,量化投资正经历一场深刻的变革。很多人以为量化交易就是写几个策略、跑回测、然后自动化执行,但真正的挑战往往隐藏在数据维度爆炸和模型过拟合的陷阱里。Alex Wang作为业内资深专家,近期提出的“智能降维”理…

2026/7/23 2:37:15 阅读更多 →
TI EMAC/MDIO中断管理实战:从寄存器到驱动避坑指南

TI EMAC/MDIO中断管理实战:从寄存器到驱动避坑指南

1. 从寄存器手册到实战:理解EMAC/MDIO中断管理的核心逻辑搞嵌入式网络驱动,尤其是像TI这种大厂的复杂外设,最头疼的往往不是写数据收发流程,而是把那一大本寄存器手册里的中断机制给整明白。手册里每个比特位都给你列得清清楚楚&a…

2026/7/23 2:37:15 阅读更多 →
不会写代码的人,终于迎来了属于自己的开发时代

不会写代码的人,终于迎来了属于自己的开发时代

每次参加各种科技大会,我都会留意会场里的一个特殊区域:那里没有炫目的舞台,没有重量级嘉宾,也没有热闹的抽奖,却总能吸引很多人的目光。这就是黑客松(Hackathon)现场。这些年,无论是…

2026/7/23 2:36:15 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻