【Linux运维极简教程】04-进程与服务管理
04 - 进程与服务管理一、进程基础1.1 什么是进程进程是程序运行中的实例。每个进程拥有PID进程 ID唯一标识PPID父进程 IDUID/GID运行用户和组状态运行、睡眠、僵尸等1.2 进程状态状态代码状态名称说明RRunning正在运行或在运行队列中等待SSleeping可中断睡眠等待事件DDisk Sleep不可中断睡眠通常在等待 IOZZombie僵尸进程已终止但父进程未回收TStopped停止/暂停如 CtrlZ二、进程查看2.1 ps - 进程快照# 查看当前终端的进程ps# 查看系统所有进程BSD 风格psaux# 查看系统所有进程标准风格ps-ef# 查看特定用户的进程ps-unginx# 查看进程树ps-ef--forest# 查看指定 PIDps-p1234-opid,ppid,cmd# 自定义输出格式ps-eopid,ppid,user,%cpu,%mem,stat,start,time,command--sort-%cpu|head-202.2 top - 实时进程监控toptop 交互操作按键功能P按 CPU 排序M按内存排序N按 PID 排序T按运行时间排序1显示所有 CPU 核心k杀死指定进程r修改进程优先级q退出# 批处理模式输出一次后退出top-b-n1|head-20# 只看特定用户top-unginx2.3 htop - 增强版 top需安装# CentOSyuminstall-yepel-releaseyuminstall-yhtop# Ubuntuaptinstall-yhtop# 使用htop2.4 其他进程查看工具# pgrep - 按名称查找进程 PIDpgrep nginx pgrep-uroot nginx# 指定用户# pidof - 查找程序的 PIDpidof nginx# pstree - 树形显示进程关系pstree-p# 显示 PIDpstree-ap|grepnginx三、进程控制3.1 前台与后台# 在后台运行命令command# 将前台进程放到后台暂停Ctrl Z# 查看后台任务jobs# 将后台任务调到前台fg%1# 调出 1 号任务# 让暂停的后台任务继续运行bg%1# 脱离终端运行推荐nohupcommandnohup./script.sh/tmp/output.log213.2 进程优先级Linux 使用 nice 值控制进程优先级范围 -20最高到 19最低默认为 0。# 以指定 nice 值启动nice-n10./backup.sh# 降低优先级nice-n-5./critical_task# 提高优先级需要 root# 修改运行中进程的 nice 值renice-n5-p1234# 将 PID 1234 的 nice 值改为 5renice-n-10-p1234# 提高优先级需要 root3.3 终止进程# kill - 通过 PID 终止kill1234# 默认发送 SIGTERM15优雅终止kill-151234# 同上kill-91234# 发送 SIGKILL强制终止最后手段kill-HUP1234# 发送 SIGHUP常用于重载配置# killall - 按名称终止killallnginxkillall-9nginx# 强制终止所有 nginx 进程# pkill - 按名称或条件终止pkillnginxpkill-ualice# 终止 alice 的所有进程pkill-fpython script.py# 按完整命令行匹配常用信号信号编号含义SIGHUP1挂起/重载配置SIGINT2中断CtrlCSIGTERM15优雅终止默认SIGKILL9强制终止不可捕获SIGSTOP19暂停SIGCONT18继续最佳实践先killSIGTERM等待几秒若进程仍在则kill -9。四、systemd 服务管理systemd 是现代 LinuxCentOS 7/Ubuntu 16.04的初始化系统和服务管理器。4.1 基本服务管理# 启动/停止/重启/重载systemctl start nginx systemctl stop nginx systemctl restart nginx systemctl reload nginx# 重新加载配置不断开连接# 查看服务状态systemctl status nginx# 设置开机自启systemctlenablenginx# 开机自启systemctl disable nginx# 禁止开机自启systemctl is-enabled nginx# 查看是否开机自启# 查看所有服务systemctl list-units--typeservice systemctl list-units--typeservice--staterunning systemctl list-unit-files--typeservice--stateenabled4.2 编写 Service 单元文件创建/etc/systemd/system/myapp.service[Unit] DescriptionMy Application Server Afternetwork.target mysql.service Wantsmysql.service [Service] Typesimple Userappuser Groupappuser WorkingDirectory/opt/myapp ExecStart/opt/myapp/bin/start.sh ExecStop/opt/myapp/bin/stop.sh ExecReload/bin/kill -HUP $MAINPID Restarton-failure RestartSec5s EnvironmentNODE_ENVproduction EnvironmentPORT3000 LimitNOFILE65535 [Install] WantedBymulti-user.targetType 说明类型说明simple默认ExecStart 启动的进程就是主进程forking进程会 fork 子进程父进程退出oneshot执行一次性任务后退出notify服务就绪后发送 sd_notify 通知Restart 说明值说明no默认不自动重启on-failure非正常退出时重启on-abnormal被信号终止或超时时重启always总是重启4.3 管理自定义服务# 创建服务文件后重新加载 systemd 配置systemctl daemon-reload# 启动并设置开机自启systemctl start myapp systemctlenablemyapp# 查看服务日志journalctl-umyapp-f# 实时查看journalctl-umyapp--sincetoday journalctl-umyapp-n100# 最近 100 条4.4 systemd 定时器替代 cron创建/etc/systemd/system/backup.timer[Unit] DescriptionDaily Backup Timer [Timer] OnCalendardaily Persistenttrue [Install] WantedBytimers.target# 启用定时器systemctlenable--nowbackup.timer# 查看所有定时器systemctl list-timers五、资源限制5.1 临时限制 - ulimit# 查看当前限制ulimit-a# 查看打开文件数限制ulimit-n# 默认 1024# 临时修改ulimit-n655355.2 永久限制 - limits.conf编辑/etc/security/limits.conf# 用户 类型 资源 值 * soft nofile 65535 * hard nofile 65535 nginx soft nproc 4096 nginx hard nproc 8192资源说明nofile最大打开文件数nproc最大进程数memlock最大锁定内存cpu最大 CPU 时间分钟5.3 systemd 服务资源限制在 service 文件的[Service]段中[Service] LimitNOFILE65535 LimitNPROC4096 MemoryLimit2G CPUQuota200%六、实战场景场景一排查 CPU 占用过高的进程# 方法一toptop-b-n1-o%CPU|head-20# 方法二psps-eopid,user,%cpu,%mem,command--sort-%cpu|head-10# 查看进程的线程top-H-pPID# 查看进程在做什么strace-pPID-c-t# 统计系统调用场景二清理僵尸进程# 查找僵尸进程psaux|grep-wZ# 找到僵尸进程的父进程ps-oppid-pzombie_pid# 终止父进程让 init 回收子进程killparent_pid场景三将应用配置为系统服务# 1. 编写 service 文件cat/etc/systemd/system/webapp.serviceEOF [Unit] DescriptionWeb Application Afternetwork.target [Service] Typesimple Userwebapp WorkingDirectory/opt/webapp ExecStart/usr/bin/node /opt/webapp/server.js Restarton-failure RestartSec3 EnvironmentNODE_ENVproduction [Install] WantedBymulti-user.target EOF# 2. 创建专用用户useradd-r-s/sbin/nologin webapp# 3. 重载并启动systemctl daemon-reload systemctlenable--nowwebapp systemctl status webapp七、小结本篇涵盖了进程查看、控制、优先级管理、systemd 服务管理以及资源限制。掌握 systemd 服务单元文件的编写是现代运维的核心技能能让你将任何应用管理为标准系统服务。上一篇03 - 用户与用户组管理下一篇05 - 软件包管理

相关新闻

网络工程师实战:基于 Cisco IOS 的 3 种交换机基础配置与排错

网络工程师实战:基于 Cisco IOS 的 3 种交换机基础配置与排错

网络工程师实战:基于 Cisco IOS 的 3 种交换机基础配置与排错刚接手一台全新的 Cisco 交换机时,很多新手工程师会感到无从下手。交换机不像路由器那样有丰富的接口类型和复杂的路由协议,但正是这种"简单"常常让人掉以轻心。本文将分…

2026/7/13 23:33:08阅读更多 →
乱序词游戏设计原理与认知训练实践

乱序词游戏设计原理与认知训练实践

1. 这不是简单的“找不同”,而是一场大脑的敏捷训练营你有没有试过盯着一个打乱顺序的单词,明明每个字母都认识,却像被施了定身咒一样卡在嘴边?比如看到"lpepa",脑子里瞬间闪过“苹果”两个字,但…

2026/7/13 23:33:08阅读更多 →
C语言八大排序算法性能实测:10万数据下快排与堆排序耗时对比

C语言八大排序算法性能实测:10万数据下快排与堆排序耗时对比

C语言八大排序算法性能实测:10万数据下快排与堆排序耗时对比排序算法是计算机科学中最基础也最重要的算法之一。对于C语言开发者来说,深入理解各种排序算法的性能特点,能够在实际开发中做出更合理的选择。本文将通过实测对比八大经典排序算法…

2026/7/13 23:28:08阅读更多 →
告别手动复制:基于浏览器控制台脚本的拼多多订单批量导出方案

告别手动复制:基于浏览器控制台脚本的拼多多订单批量导出方案

1. 为什么需要拼多多订单批量导出方案作为一个经常在拼多多购物的用户,我深刻体会到手动整理订单的麻烦。每次想统计月度消费、查找特定商品或者核对收货状态时,都得一页页翻看订单列表,然后手动复制粘贴到Excel。这种操作不仅效率低下&#…

2026/7/14 1:18:28阅读更多 →
餐厅官网HTML模板包:含首页/菜单/订餐/联系页等10个页面,纯原生代码+响应式适配

餐厅官网HTML模板包:含首页/菜单/订餐/联系页等10个页面,纯原生代码+响应式适配

本文还有配套的精品资源,点击获取 简介:一套开箱即用的餐厅类网站HTML模板,包含index.html首页、menu.html菜单页、contact.html联系页、service-list.html服务列表页、blog-default.html博客列表页等共10个独立HTML页面。所有页面基于HTM…

2026/7/14 1:18:28阅读更多 →
如何用Python自动化剪映:告别重复剪辑的终极指南

如何用Python自动化剪映:告别重复剪辑的终极指南

如何用Python自动化剪映:告别重复剪辑的终极指南 【免费下载链接】JianYingApi Third Party JianYing Api. 第三方剪映Api 项目地址: https://gitcode.com/gh_mirrors/ji/JianYingApi 还在为每天重复的视频剪辑工作感到疲惫吗?想要让计算机自动完…

2026/7/14 1:18:28阅读更多 →
5分钟掌握Android系统镜像免Root提取:Payload-Dumper-Android完整指南

5分钟掌握Android系统镜像免Root提取:Payload-Dumper-Android完整指南

5分钟掌握Android系统镜像免Root提取:Payload-Dumper-Android完整指南 【免费下载链接】Payload-Dumper-Android Payload Dumper App for Android. Extract boot.img or any other partitions (images) from OTA.zip or payload.bin without PC 项目地址: https:/…

2026/7/14 1:18:28阅读更多 →
3分钟搞定中小学电子课本批量下载:告别平台限制的高效解决方案

3分钟搞定中小学电子课本批量下载:告别平台限制的高效解决方案

3分钟搞定中小学电子课本批量下载:告别平台限制的高效解决方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 …

2026/7/14 1:18:27阅读更多 →
TLP241A光耦与PIC18LF26K40构建高可靠电气隔离方案

TLP241A光耦与PIC18LF26K40构建高可靠电气隔离方案

1. 项目背景与核心价值在工业控制和电力电子领域,电气隔离技术一直是确保系统安全可靠运行的基石。我最近完成的一个项目,正是基于TLP241A光耦和PIC18LF26K40微控制器构建的高可靠性隔离方案。这个设计最初源于我们在某工业自动化设备中遇到的实际问题—…

2026/7/14 1:13:27阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/13 4:47:19阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/13 0:50:34阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/13 4:52:09阅读更多 →
【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

更多请点击: https://intelliparadigm.com 第一章:Cursor数据库安全红线概览 Cursor 作为一款基于 AI 的智能编程助手,其本地数据库(SQLite 存储)承载着用户代码片段、会话历史、自定义规则及敏感上下文信息。理解其安…

2026/7/14 0:03:18阅读更多 →
【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

更多请点击: https://codechina.net 第一章:Notion AI写作辅助的底层能力边界认知 Notion AI 并非通用大语言模型的直接封装,而是基于 Llama 系列与自研微调模型构建的轻量化推理服务,其输入上下文窗口严格限制在 8192 token&…

2026/7/14 0:03:18阅读更多 →
AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

更多请点击: https://kaifayun.com 第一章:AI Agent数据越界行为的合规性挑战与溯源必要性 AI Agent在自主执行任务过程中,可能因提示注入、上下文污染或权限配置缺陷,无意或有意访问、缓存、传输受保护数据(如PII、G…

2026/7/14 0:03:18阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/13 4:21:17阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/13 4:08:53阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/12 21:43:43阅读更多 →