首页/新闻资讯/正文详情

Linux WSL 实操(模块 4):Systemd 服务控制与 Journald 日志排查

发布时间:2026/9/27 2:51:51 来源:云帆数科 栏目:资讯中心
Linux WSL 实操(模块 4):Systemd 服务控制与 Journald 日志排查
Linux WSL 实操模块 4Systemd 服务控制与 Journald 日志排查本系列基于Ubuntu on WSL2做 Linux 实操共 10 个模块模块内容1模块 1WSL 环境适配与 systemd 启用2模块 2目录结构与核心文件操作3模块 3用户与文件权限管理4systemd 服务控制与 journald 日志排查← 本文5Nginx 静态站点6反向代理7Shell 脚本基础8脚本进阶与 crontab9Docker 与 Compose10多容器编排本篇目标把systemctl的 start / stop / restart / reload / enable / disable / status 全部练熟学会用journalctl实时看日志、按时间筛日志、定位报错最后用「故意改坏 nginx 配置 → 排错 → 恢复」做一次完整演练。一、为什么要学 systemd 和 journald模块 1 我们确认了 systemd 是 1 号进程。本篇就把它真正用起来。先搞清一个基本模型Linux 里所有长期运行的服务nginx、mysql、docker都不是你手动敲起来的而是交给 systemd 统一管理的。systemd (PID 1) ├── nginx.service ← 每个服务是一个 unit ├── ssh.service ├── docker.service └── ...systemd 帮我们解决三件事问题对应命令服务怎么启动/停止/重启systemctl start/stop/restart/reload服务现在活着吗开机自动起来吗systemctl status/is-active/is-enabled服务挂了为什么挂journalctl为什么日志要用journalctl而不是tail -f /var/log/xxx.log对比tail -f 日志文件journalctl覆盖范围只有你指定的那一个文件所有服务统一管理按服务过滤做不到-u nginx一条就够按时间过滤做不到--since/--until日志轮转后老内容被切走看不到了仍在 journal 里可查附带解释无-x会告诉你可能的原因一句话tail -f是盯一个文件journalctl是查一台机器。排错优先用 journalctl。二、启动服务start / is-active / statussudosystemctl start nginx systemctl is-active nginx systemctl status nginx子命令含义start启动服务is-active只回答活着吗输出active或inactive适合脚本判断status详细状态包含是否运行、PID、最近几行日志预期输出is-active输出activestatus里有绿色active (running)。按q退出。status是最该先敲的命令——它一次给你状态、PID 和最近日志是排错的第 0 步。三、停止服务stopsudosystemctl stop nginx systemctl is-active nginxcurl-Ilocalhost子命令含义stop停止服务预期输出is-active输出inactivecurl报Connection refused服务停了端口没人听。⚠️验证完记得sudo systemctl start nginx起回来否则后面模块 5 做静态站点时会一脸懵。四、reload 与 restart 的区别重点这两个最容易被混用但后果完全不同。sudosystemctl reload nginxsudosystemctl restart nginx systemctl is-active nginx子命令行为PID已有连接reload重新读配置不重启进程不变不断restart整个停掉再起来会变会断两条都成功is-active输出active。怎么亲眼验证 PID 变没变systemctl show nginx-pMainPID操作MainPIDreload后不变restart后会变⚠️ 关键风险操作配置有语法错误时reload可能失败但旧进程还在跑安全线上没断restart可能直接起不来服务彻底挂掉事故所以流程固定为先nginx -t测语法再reload。记法reload是改完配置让它重读restart是掀桌子重来。改配置优先 reload。五、enable 与 disable开机自启sudosystemctl disable nginx systemctl is-enabled nginxsudosystemctlenablenginx systemctl is-enabled nginx子命令含义enable设为开机自动启动本质是建一个软链接到/etc/systemd/system/...disable取消开机自启删掉那个软链接。不影响现在跑不跑is-enabled查询自启状态输出enabled/disabled/static预期输出disable后输出disabledenable后输出enabled。⚠️ enable ≠ start命令管的是enable下次开机要不要起来start现在要不要起来两个是独立的两件事所以常用组合是sudosystemctlenable--nownginx--now就是设开机自启的同时现在也启动。六、journalctl -u nginx -f实时滚动日志sudojournalctl-unginx-f片段含义journalctl查询 systemd 统一日志journald的命令-u nginxunit只看 nginx 这一个服务的日志其他全部过滤掉-ffollow跟随不退出有新日志立刻滚出来和tail -f一个感觉验证步骤敲完会卡住等新日志。另开一个窗口敲curl localhost或sudo systemctl restart nginx。回到这边应该立刻看到新的日志行冒出来。Ctrl C退出。这个组合是运维看日志的日常动作一个窗口-f盯着另一个窗口造流量。七、journalctl -xe看最近的详细报错sudojournalctl-xe选项含义-xexplain附带解释文字告诉你这条日志可能是什么原因-eend直接跳到末尾最新的部分不用自己翻半天直接停在最后几屏红色的行就是错误。按↑↓翻按q退出。想只看某个服务就加-usudojournalctl-unginx-xe--no-pager–no-pager 是什么不加的话journalctl会进入翻页模式像less不能直接用管道二次处理。加上--no-pager就一次性全打出来方便配合grep或head过滤sudojournalctl-unginx --no-pager|greperror|head-20八、journalctl --since按时间段捞日志这是 journalctl 比tail -f强最明显的地方——能精确指定时间窗。sudojournalctl-unginx--since1 hour agosudojournalctl-unginx--sincetodaysudojournalctl-unginx--since2026-09-07 00:00--until2026-09-26 20:40选项含义--since从这个时间点之后开始看--until看到这个时间点为止1 hour ago支持人话写法还有30 min ago、2 days ago、yesterday、today绝对时间也可以写死2026-09-07 00:00这种格式两个配合就是精确时间窗实用组合需求命令看最近 1 小时journalctl -u nginx --since 1 hour ago看今天的journalctl -u nginx --since today精确定位某段时间比如故障时段journalctl -u nginx --since ... --until ...只看错误级别journalctl -u nginx -p err --since today故障复现时间点很关键先记下大概几点出的问题再用--since/--until圈定范围比盲目翻日志快十倍。九、实战演练故意改坏 nginx 配置再用 journalctl 排错前面都是单条命令的练习现在做一次完整故障排查闭环。这是本篇最有价值的部分。9.1 先备份铁律sudocp/etc/nginx/sites-enabled/default /tmp/default.bak片段含义cp ... /tmp/default.bak先备份一份改坏了能还原改配置前先备份这是铁律sites-enabled/defaultnginx 的默认站点配置文件9.2 制造故障sudonano/etc/nginx/sites-enabled/default操作找到root /var/www/html;这一行把行尾的分号删掉保存退出CtrlO回车 →CtrlX。9.3 先用 nginx -t 测语法关键一步sudonginx-t片段含义nginxnginx 主程序-ttest只检查配置文件语法不真的启动预期输出nginx: [emerg] unexpected } ...之类并明确告诉你出错在第几行、是哪个文件。⚠️永远不要跳过这一步不测语法就 restart服务起不来还得回滚线上就是事故。9.4 用 journalctl 把错误行揪出来sudosystemctl restart nginx systemctl is-active nginxsudojournalctl-unginx-xe--no-pager|tail-20sudosystemctl status nginx片段含义| tail -20管道把 journalctl 的输出交给 tail只看最后 20 行status里的红色行systemd 会把服务启动失败的原因直接贴在这里预期输出restart失败is-active输出failed或inactive日志里明确写出出错的文件和行号。9.5 修复并验证sudonano/etc/nginx/sites-enabled/defaultsudonginx-tsudosystemctl restart nginx systemctl is-active nginx操作把分号加回去 →nginx -t应输出syntax is ok/test is successful→restart→is-active输出active。十、⚠️ 排错的标准流程背下来① systemctl status 服务 → 看状态、看最近日志 ② journalctl -u 服务 -xe → 看详细报错找到文件和行号 ③ 找到行号去改配置 ④ nginx -t或服务自带的语法检查→ 验证语法 ⑤ reload 或 restart原则说明先看状态再动手别一上来就 restart先搞清楚发生了什么永远不要跳过第 ④ 步不测语法就重启起不来还得回滚改配置前先备份cp 原文件 /tmp/xxx.bak一分钟的事优先 reload 而非 restartreload 失败旧进程还在跑restart 失败服务直接挂十一、命令速查表命令作用systemctl start 服务启动服务systemctl stop 服务停止服务systemctl restart 服务重启PID 变、连接断systemctl reload 服务重读配置PID 不变、连接不断systemctl enable 服务设为开机自启systemctl disable 服务取消开机自启systemctl enable --now 服务设自启 立即启动systemctl status 服务详细状态 最近日志q退出systemctl is-active 服务只输出active/inactivesystemctl is-enabled 服务只输出enabled/disabledsystemctl show 服务 -p MainPID查主进程 PID验证 reload/restartjournalctl -u 服务 -f实时滚动某服务日志CtrlC退出journalctl -u 服务 -xe看最近详细报错红色的就是错误journalctl -u 服务 --since 1 hour ago按时间段捞日志journalctl -u 服务 --no-pager | grep 关键词日志二次过滤nginx -t检查 nginx 配置语法十二、常见问题排查现象原因与处理status显示inactive (dead)服务没启动 →systemctl start 服务status显示failed服务启动失败 →看status里的红色行 journalctl -u 服务 -xe改了配置但没生效忘了reload/restart注意改配置不会自动生效reload报错但服务还在跑说明配置有语法错误先nginx -t定位别急着重启restart后服务起不来了配置语法错误 →journalctl -xe找行号 → 改回 → 用备份还原开机后服务没自动起没enable用systemctl is-enabled确认journalctl卡在翻页模式没法配合管道加--no-pagerjournalctl提示没权限 / 日志不全加sudo另外 Ubuntu 默认 journal 占用磁盘有上限过老的日志会被清理想清空日志释放空间sudo journalctl --vacuum-time7d只保留 7 天curl: command not found先sudo apt install -y curl十三、本篇小结能力命令启停服务start/stop/restart/reload看状态status/is-active开机自启enable/disable/enable --now实时日志journalctl -u 服务 -f定位报错journalctl -u 服务 -xe时间筛选--since/--until二次过滤--no-pager | grep配置校验nginx -t两条最重要的认知enable和start是两件事—— 一个管下次开机一个管现在。改配置的流程永远是备份 → 改 → 语法检查 → reload—— 跳过语法检查就是给自己埋雷。到这里服务控制和日志排查就练通了。下一个模块Nginx 静态站点把这个一直在用的 nginx 真正配成一个网站。相关链接模块 1WSL 环境适配与 systemd 启用模块 2目录结构与核心文件操作模块 3用户与文件权限管理

相关推荐

三轨齐发全域流量爆破与变现裂变总攻实施手册
三轨齐发全域流量爆破与变现裂变总攻实施手册

战略定调:Google AdSense 首个出单周期验证成功(59 PV / 8 Impressions / 4 Clicks / 6.78% CTR / US$0.03 RPM)。经统帅最高指令,“三轨齐发,全面执行”,启动全域流量爆破与公域高价值点击收割战役。 免责… · 2026/9/27 2:51:51

ESP32+INMP441实战:从I2S数字麦克风到语音识别全解析
ESP32+INMP441实战:从I2S数字麦克风到语音识别全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:51:45

网站建设在那里接单实战:3个渠道让你月入过万,哪家好看数据
网站建设在那里接单实战:3个渠道让你月入过万,哪家好看数据

网站建设在那里接单实战:3个渠道让你月入过万,哪家好看数据 网站做好了没人访问,这行当里谁没踩过这坑?别急着怪流量算法,先问问自己:网站建设在那里接单,到底哪家平台或渠道的数据跑得动?… · 2026/9/27 2:51:39

佛山网站建设公司3lue:5个免费工具搞定丑站痛点
佛山网站建设公司3lue:5个免费工具搞定丑站痛点

佛山网站建设公司3lue:5个免费工具搞定丑站痛点 还在为模板网站太丑不够用而头疼?别急着掏钱找佛山网站建设公司3lue,先试试这几个 免费工具 。很多甲方朋友一上来就问价格,却忽略了网站上线前的视觉诊断和性能体检。… · 2026/9/27 6:56:16

解决matplotlib绘图中文字符显示问题
解决matplotlib绘图中文字符显示问题

在使用Python进行数据可视化时,常常会遇到中文字符无法正常显示的问题。默认情况下,Matplotlib等常用可视化库并不支持中文字体,这导致中文字符显示为方框或者引发字体相关的警告,给数据展示和报告生成带来不便。尤其对于数据分析师而言,频繁手动调整字体配置既耗时又易出… · 2026/9/27 6:56:16

RL-赵-(九)-Policy函数拟合算法-Policy Gradient算法01:基本概念【用参数化的函数来拟合π,来取代表格形式的π(表格中每个元素直接保存了某个s-a对的π概率值)】
RL-赵-(九)-Policy函数拟合算法-Policy Gradient算法01:基本概念【用参数化的函数来拟合π,来取代表格形式的π(表格中每个元素直接保存了某个s-a对的π概率值)】

从本文开始,将从value-based methods转向到policy-based methods,从value function approximation到policy function approximation。 一、Basic idea of policy gradient 到目前,我们的policies都是用tables表示的。 如下是所有state的action probabilities,存储在一个t… · 2026/9/27 6:56:16

用AgentENV训练Terminal-Bench-2:搭建Agent强化学习的沙箱后端
用AgentENV训练Terminal-Bench-2:搭建Agent强化学习的沙箱后端

用AgentENV训练Terminal-Bench-2:搭建Agent强化学习的沙箱后端 【免费下载链接】AgentENV AgentENV (AENV) is a distributed platform for running agent environments at scale. 项目地址: https://gitcode.com/gh_mirrors/age/AgentENV AgentENV&#xff… · 2026/9/27 6:55:58

别被建站报价忽悠 揭秘免费做调查问卷的网站真底细
别被建站报价忽悠 揭秘免费做调查问卷的网站真底细

别被建站报价忽悠 揭秘免费做调查问卷的网站真底细 找建站公司怕被坑高价,这是很多老板心里的痛点。市面上那些号称“全网最低”的建站报价单,往往藏着无数的隐形消费。今天咱们不聊虚的,直接拆解一个看似与建站无关,实则能帮你省下一大笔营销成本的场景… · 2026/9/27 6:55:52

文献阅读 260926-The Origins and Control of Forest Fires in the Tropics
文献阅读 260926-The Origins and Control of Forest Fires in the Tropics

The Origins and Control of Forest Fires in the Tropics 📌 基本信息 🛠️ 一、 引言部分简要总结 (Introduction Summary) 🔬 二、 研究方法详细介绍与分析 (Methodology Framework) 图片名:Figure 1 图例说明:Figu… · 2026/9/27 6:55:34

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码