小白畅通Linux之旅-----Linux进程管理
目录
一、进程查看命令
1、pstree
2、ps
3、pgrep
4、top、htop
二、进程管理命令
1、kill
2、pkill 和 killall
三、进程类型
1、前台进程
2、后台进程
一、进程查看命令
1、pstree
用于查看进程树之间的关系,谁是父进程,谁是子进程,可以清楚的看出来是谁创建了谁
用法:pstree [选项]
-A 各进程树之间的连接以ASCll码字符来连接
[root@localhost ~]# pstree -A
systemd-+-ModemManager---2*[{ModemManager}]|-NetworkManager---2*[{NetworkManager}]|-VGAuthService|-accounts-daemon---2*[{accounts-daemon}]|-alsactl|-anacron|-at-spi-bus-laun-+-dbus-daemon---{dbus-daemon}| `-3*[{at-spi-bus-laun}]|-at-spi2-registr---2*[{at-spi2-registr}]|-atd|-auditd-+-sedispatch| `-2*[{auditd}]|-avahi-daemon---avahi-daemon|-bluetoothd|-colord---2*[{colord}]|-crond|-cupsd|-dbus-daemon---{dbus-daemon}|-dconf-service---2*[{dcon
-P 同时列出每个进程的PID
[root@localhost ~]# pstree -p
systemd(1)─┬─ModemManager(1203)─┬─{ModemManager}(1225)│ └─{ModemManager}(1233)├─NetworkManager(1639)─┬─{NetworkManager}(1695)│ └─{NetworkManager}(1714)├─VGAuthService(978)├─accounts-daemon(993)─┬─{accounts-daemon}(1005)│ └─{accounts-daemon}(1025)├─alsactl(973)├─anacron(42843)├─at-spi-bus-laun(4502)─┬─dbus-daemon(4538)───{dbus-daemon}(4551)│ ├─{at-spi-bus-laun}(4522)│ ├─{at-spi-bus-laun}(4533)│ └─{at-spi-bus-laun}(4535)├─at-spi2-registr(4556)─┬─{at-spi2-registr}(4588)│ └─{at-spi2-registr}(4590)
2、ps
显示系统当前进程瞬间运行状态
用法:ps [选项]
-A 所有进程均显示出来
[root@localhost ~]# ps -APID TTY TIME CMD1 ? 00:00:03 systemd2 ? 00:00:00 kthreadd3 ? 00:00:00 rcu_gp4 ? 00:00:00 rcu_par_gp5 ? 00:00:00 slub_flushwq7 ? 00:00:00 kworker/0:0H-events_highpri10 ? 00:00:00 mm_percpu_wq11 ? 00:00:00 rcu_tasks_rude_12 ? 00:00:00 rcu_tasks_trace13 ? 00:00:00 ksoftirqd/014 ? 00:00:00 rcu_sched15 ? 00:00:00 migration/016 ? 00:00:00 watchdog/017 ? 00:00:00 cpuhp/0
-a 显示现行终端机下的所有进程,包括其他用户的进程
-u 以用户为主的进程状态
-x 通常与 a 这个参数一起使用,可列出较完整信息
ps -aux
#进程的所有者#进程id#进程占用的cpu百分比#进程占用的内存百分比#进程使用的虚拟内存大小#进程使用的物理内存大小#进程所在终端#进程状态#启动时间#运行时间#启动进程的命令
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.8 176204 14400 ? Ss 17:26 0:03 /usr/lib/systemd/systemd --switched-roo
root 2 0.0 0.0 0 0 ? S 17:26 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 17:26 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 17:26 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I< 17:26 0:00 [slub_flushwq]
root 7 0.0 0.0 0 0 ? I< 17:26 0:00 [kworker/0:0H-events_highpri]
root 10 0.0 0.0 0 0 ? I< 17:26 0:00 [mm_percpu_wq]
root 11 0.0 0.0 0 0 ? S 17:26 0:00 [rcu_tasks_rude_]
root 12 0.0 0.0 0 0 ? S 17:26 0:00 [rcu_tasks_trace]
root 13 0.0 0.0 0 0 ? S 17:26 0:00 [ksoftirqd/0]
root 14 0.0 0.0 0 0 ? I 17:26 0:00 [rcu_sched]
root 15 0.0 0.0 0 0 ? S 17:26 0:00 [migration/0]
root 16 0.0 0.0 0 0 ? S 17:26 0:00 [watchdog/0]
root 17 0.0 0.0 0 0 ? S 17:26 0:00 [cpuhp/0]
root 18 0.0 0.0 0 0 ? S 17:26 0:00 [cpuhp/1]
root 19 0.0 0.0 0 0 ? S 17:26 0:00 [watchdog/1]
进程状态:
S:休眠
s:父进程
R:运行
Z:僵尸进程(前台程序已死,但后台驻留进程没有正常退出;后果就是占用资源不干活。)
3、pgrep
查看进程的信息,包括进程是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。 pgrep通过匹配其程序名,找到匹配的进程
[root@localhost ~]# pgrep nginx
42670
42671
42672
42673
42674
-l 同时显示进程名和PID
[root@localhost ~]# pgrep -l nginx
42670 nginx
42671 nginx
42672 nginx
42673 nginx
42674 nginx
-o 当匹配多个进程时,显示进程号最小的那个
[root@localhost ~]# pgrep -o nginx
42670
-n 当匹配多个进程时,显示进程号最大的那个
[root@localhost ~]# pgrep -n nginx
42674
注意:#pgrep命令用来查找进程的信息,通常会和kill命令来连用,在指定条件下kill问题进程
[root@localhost ~]# kill -9 `pgrep nginx`
4、top、htop
top:动态监控系统处理器状态,htop姑且称之为top的增强版
yum install epel-release -y #安装epel源
yum install htop -y #安装htop
常用选项
-d 指定更新的时间间隔
-n 指定更新的次数
-u 监控指定用户的进程
-p 监控指定进程的PID
常用按键
空格键 立即刷新显示
M 以内存占用百分比对进程进行排序
P 以cpu占用百分比对进程进行排序
T 按照进程运行时间对进程进行排序
q 退出top命令
h 显示帮助信息
`top -d 5`:每隔 5 秒更新一次进程信息。`top -n 2`:更新两次进程信息后退出。`top -p 1234`:监控进程 ID 为 1234 的进程。`top -u root`:监控 root 用户的进程。
二、进程管理命令
1、kill
语法:kill [选项] pid
-l 列出所有信号参数
[root@localhost ~]# kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
-s 发送指定的信号
-9 强制杀死
-0 用来检测一个进程是否存在
[root@localhost ~]# ps -aux | grep nginx
root 45601 0.0 0.1 103476 2172 ? Ss 14:10 0:00 nginx: master process /usr/sbin/nginx
nginx 45602 0.0 0.4 124876 7836 ? S 14:10 0:00 nginx: worker process
nginx 45603 0.0 0.4 124876 7812 ? S 14:10 0:00 nginx: worker process
nginx 45604 0.0 0.4 124876 7808 ? S 14:10 0:00 nginx: worker process
nginx 45605 0.0 0.4 124876 7836 ? S 14:10 0:00 nginx: worker process
root 45633 0.0 0.0 222016 1108 pts/1 S+ 14:10 0:00 grep --color=auto nginx
[root@localhost ~]# kill -9 45601
[root@localhost ~]# ps -aux | grep nginx
root 45691 0.0 0.0 222016 1128 pts/1 S+ 14:11 0:00 grep --color=auto nginx
2、pkill 和 killall
pkill是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差不多,也是直接杀死运行中的程序,如果想杀掉单个进程,请用kill来杀掉。
语法:pkill/killall [选项] 进程名
[root@localhost ~]# ps -aux | grep nginx
root 45750 0.0 0.1 103476 2176 ? Ss 14:14 0:00 nginx: master process /usr/sbin/nginx
nginx 45751 0.0 0.4 124876 7996 ? S 14:14 0:00 nginx: worker process
nginx 45752 0.0 0.4 124876 7996 ? S 14:14 0:00 nginx: worker process
nginx 45753 0.0 0.4 124876 7996 ? S 14:14 0:00 nginx: worker process
nginx 45754 0.0 0.4 124876 7996 ? S 14:14 0:00 nginx: worker process
root 45817 0.0 0.0 222016 1100 pts/1 S+ 14:14 0:00 grep --color=auto nginx
[root@localhost ~]# pkill nginx
[root@localhost ~]# ps -aux | grep nginx
root 45875 0.0 0.0 222016 1208 pts/1 S+ 14:15 0:00 grep --color=auto nginx
三、进程类型
1、前台进程
在终端界面运行的进程,运行前台进程后,终端无法操作
(1)查看
(2)创建前台进程 nginx -g "daemon off;"
[root@localhost ~]# systemctl stop nginx
[root@localhost ~]# nginx -g "daemon off;"[root@localhost ~]# ps -aux | grep nginx
root 46469 0.0 0.6 103480 12484 pts/1 S+ 14:30 0:00 nginx: master process nginx -g daemon off;
nginx 46470 0.0 0.4 124876 7916 pts/1 S+ 14:30 0:00 nginx: worker process
nginx 46471 0.0 0.4 124876 7896 pts/1 S+ 14:30 0:00 nginx: worker process
nginx 46472 0.0 0.4 124876 7876 pts/1 S+ 14:30 0:00 nginx: worker process
nginx 46473 0.0 0.4 124876 7884 pts/1 S+ 14:30 0:00 nginx: worker process
root 46727 0.0 0.0 222016 1132 pts/2 S+ 14:31 0:00 grep --color=auto nginx
(3)#将前台进程放到后台运行
firefox &
#注意:该运行前台进程的方式,当终端关闭时,进程也会随着关闭
nohup firefox & #关闭终端,进程不掉
#将进程调到前台运行
fg 1 ctrl + z 停止
#将正在运行的前台进程放到后台运行
bg 1
[root@localhost ~]# sleep 100 &
[1] 48585
[root@localhost ~]# ps -aux | grep sleep
root 48534 0.0 0.0 217160 848 ? S 14:58 0:00 sleep 60
root 48585 0.0 0.0 217160 948 pts/1 S 14:59 0:00 sleep 100
root 48636 0.0 0.0 222016 1212 pts/1 S+ 14:59 0:00 grep --color=auto sleep
[root@localhost ~]# fg 1
sleep 100^Z
[1]+ 已停止 sleep 100
[root@localhost ~]# ps -aux | grep sleep
root 48534 0.0 0.0 217160 848 ? S 14:58 0:00 sleep 60
root 48585 0.0 0.0 217160 948 pts/1 T 14:59 0:00 sleep 100
root 48793 0.0 0.0 222016 1116 pts/1 S+ 14:59 0:00 grep --color=auto sleep
[root@localhost ~]# bg 1
[1]+ sleep 100 &
[root@localhost ~]# ps -aux | grep sleep
root 48585 0.0 0.0 217160 948 pts/1 S 14:59 0:00 sleep 100
root 48876 0.0 0.0 217160 928 ? S 14:59 0:00 sleep 60
root 48924 0.0 0.0 222016 1128 pts/1 S+ 15:00 0:00 grep --color=auto sleep
2、后台进程
驻留在后端运行的进程
相关文章:
小白畅通Linux之旅-----Linux进程管理
目录 一、进程查看命令 1、pstree 2、ps 3、pgrep 4、top、htop 二、进程管理命令 1、kill 2、pkill 和 killall 三、进程类型 1、前台进程 2、后台进程 一、进程查看命令 1、pstree 用于查看进程树之间的关系,谁是父进程,谁是子进程&#…...

【芯片设计中的跨时钟域信号处理:攻克亚稳态的终极指南】
在当今芯片设计中,多时钟域已成为常态。从手机SoC到航天级FPGA,不同功能模块运行在各自的时钟频率下,时钟域间的信号交互如同“语言不通”的对话,稍有不慎就会引发亚稳态、数据丢失等问题。这些隐患轻则导致功能异常,重…...

接地气的方式认识JVM(一)
最近在学jvm,浮于表面的学了之后,发现jvm并没有我想象中的那么神秘,这篇文章将会用接地气的方式来说一说这些jvm的相关概念以及名词解释。 带着下面两个问题来阅读 认识了解JVM大致有什么在代码运行时的都在背后做了什么 JVM是个啥…...
教师申报书课题——项目名称: 基于DeepSeek-R1与飞书妙记的课堂话语智能分析实践计划
明白了!针对教师个人能力范围(无需编程、无需服务器、零预算),我设计一个纯手工+免费工具组合的极简技术方案,用飞书基础功能和DeepSeek网页版就能实现核心分析。申报书重点突出 “轻量、易用、快速启动”。 项目申报书(极简个人实践版) 项目名称: 基于DeepSeek-R1与飞…...

JAVA:Kafka 消息可靠性详解与实践样例
🧱 1、简述 Apache Kafka 是高吞吐、可扩展的流处理平台,在分布式架构中广泛应用于日志采集、事件驱动和微服务解耦场景。但在使用过程中,消息是否会丢?何时丢?如何防止丢? 是很多开发者关心的问题。 Kafka 提供了一套完整的机制来保障消息从生产者 ➜ Broker ➜ 消费…...
【前端】Twemoji(Twitter Emoji)
目录 注意使用Vue / React 项目 验证 Twemoji 的作用: Twemoji 会把你网页/应用中的 Emoji 字符(如 😄)自动替换为 Twitter 风格的图片(SVG/PNG); 它不依赖系统字体,因此在 Android、…...

Electron 桌面程序读取dll动态库
序幕:被GFW狙击的第一次构建 当我在工位上输入npm install electron时,控制台跳出的红色警报如同数字柏林墙上的一道弹痕: Error: connect ETIMEDOUT 104.20.22.46:443 网络问题不用愁,请移步我的另外文章进行配置:…...
实时技术对比:SSE vs WebSocket vs Long Polling
早期网站仅展示静态内容,而如今我们更期望:实时更新、即时聊天、通知推送和动态仪表盘。 那么要如何实现实时的用户体验呢?三大经典技术各显神通: • SSE(Server-Sent Events):轻量级单向数据…...
js 手写promise
const PENDING pending; const FULFILLED fulfilled; const REJECTED rejected;class MyPromise {#status PENDING;#result undefined;#handler undefined;constructor(executor) {// 不能写在外面,因为this指向会出问题const resolve (data) > {this.#ch…...

HTTP 与 HTTPS 深度解析:原理、实践与大型项目应用
1. HTTP 与 HTTPS 基础概念 1.1 HTTP(超文本传输协议) 定义:应用层协议,基于 TCP/IP 通信,默认端口 80 特点: 无状态协议(需 Cookie/Session 维护状态) 明文传输(易被…...
QT6.9中opencv引用路径的其中一种设置
RC_ICONSappimage.ico unix|win32: LIBS -L$$PWD/opencv455/vc15/lib/ -lopencv_world455 INCLUDEPATH $$PWD/opencv455/include DEPENDPATH $$PWD/opencv455/include RC_ICONS为指定图标文件,只写图标名appimage.ico,那么一般和pro文件在同一目录…...
k8s pod启动失败问题排查
1. 查看日志 kubectl describe pod xxx -n xxx kubectl logs podname -n xxx --tail200 2. 镜像 到pod所在主机检查pod所需的镜像是否能成功拉取(docker images) 3.硬件资源 检查pod所在服务器的磁盘空间是否被占满(df -h 和 du -sh /&a…...
Java类中各部分内容的加载执行顺序
目录 1. 静态初始化(类加载阶段) 示例代码 输出 2. 实例初始化(对象创建阶段) 详细顺序 示例代码 输出 3. 关键规则总结 4. 注意事项 5. 完整流程图 在Java中,类的实例化过程(对象创建࿰…...
git提交信息错误,如何修改远程git提交的备注信息
有时候我们在git提交时没有按照规范提交。此时就需要修改远程git提交的备注信息。 一、修改最近几次提交 首先确保当前分支没有未提交的更改 git status使用交互式rebase修改历史记录(假设要修改最近3次提交) git rebase -i HEAD~3在打开的编辑器中&…...

API Gateway CLI 实操入门笔记(基于 LocalStack)
API Gateway CLI 实操入门笔记(基于 LocalStack) Categories: Cloud Google Rank Proof: No Last edited time: May 26, 2025 4:18 AM Status: Early draft Tags: aws 主要先简单的走一下流程,熟悉一下在 terminal 操作 API Gateway local…...
基于MATLAB实现SFA(Slow Feature Analysis,慢特征分析)算法
基于MATLAB实现SFA(Slow Feature Analysis,慢特征分析)算法的代码示例: % SFA慢特征分析 % 需要signal处理工具箱% 生成示例信号 t linspace(0,1,1000); x sin(2*pi*10*t) sin(2*pi*20*t) randn(size(t));% 定义滤波器 b fi…...

数据分析案例-基于红米和华为手机的用户评论分析
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
leetcode617.合并二叉树:递归思想下的树结构融合艺术
一、题目深度解析与核心规则 题目描述 合并两棵二叉树是一个经典的树结构操作问题,题目要求我们将两棵二叉树合并成一棵新二叉树。合并规则如下: 若两棵树的对应节点都存在,则将两个节点的值相加作为新节点的值若其中一棵树的节点存在&…...

深度学习入门:从零搭建你的第一个神经网络
深度学习入门:从零搭建你的第一个神经网络 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 深度学习入门:从零搭建你的第一个神经网络摘要引言第一章:神经网络基础原理1.1 神经元…...
【HTML-13】HTML表格合并技术详解:打造专业数据展示
表格是HTML中展示结构化数据的重要元素,而表格合并则是提升表格表现力的关键技术。本文将全面介绍HTML中的表格合并方法,帮助您创建更专业、更灵活的数据展示界面。 1. 表格合并基础概念 在HTML中,表格合并主要通过两个属性实现:…...
鸿蒙OSUniApp 制作自定义的进度条组件#三方框架 #Uniapp
使用 UniApp 制作自定义的进度条组件 在移动应用开发中,进度条是非常常见的 UI 组件,无论是文件上传、下载、任务进度还是表单填写反馈,进度条都能为用户提供直观的进度提示。虽然 UniApp 提供了一些基础的进度条能力,但在实际项…...

【Python办公】Excel简易透视办公小工具
目录 专栏导读1. 背景介绍2. 功能介绍3. 库的安装4. 界面展示5. 使用方法6. 实际应用场景7. 优化方向完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系…...
m1 运行renrenfastvue出现的问题和解决方案
1. chromedriver 报错解决:执行 npm install --ignore-scripts。 2. node-sass 报错 "Node Sass does not yet support your current environment: OS X Unsupported ...": - 降低 Node 版本至 14。 - 安装版本控制工具:sudo npm insta…...
开源模型应用落地-qwen模型小试-Qwen3-8B-推理加速-vLLM-Docker(二)
一、前言 在AI模型部署效率竞争日益激烈的当下,如何将前沿大模型与高效推理框架结合,成为开发者关注的焦点。Qwen3-8B作为阿里云推出的混合推理模型,凭借80亿参数规模与128K超长上下文支持,展现了“快思考”与“慢思考”的协同能力,而vLLM框架则通过优化内存管理与并行计算…...
【C/C++】记录一次麻烦的Kafka+Json体验
文章目录 麻烦的KafkaJson体验1 目标2 工程搭建2.1 docker配置2.2 代码2.3 工程压缩包 3 执行结果 麻烦的KafkaJson体验 1 目标 初心:结合kafka json docker,验证基本的数据生产/消费。 Kafka 配合 JSON 工具,主要是为了数据的序列化和反…...

Linux系列-2 Shell常用命令收集
背景 本文用于收集Linux常用命令(基于Centos7),是一个持续更新的博客,建议收藏,编写shell时遇到问题可以随时查阅。 1.Shell类型 shell是用C语言编写的程序,作为命令解释器连接着用户和操作系统内核。常见的shell有sh(Bourne She…...

MATLAB使用多个扇形颜色变化表示空间一个点的多种数值
MATLAB使用多个扇形颜色变化表示空间一个点的多种数值 excel中表格中数据格式,多行 lonlatdata1data2data3117380.11100 clear;close all; figure(Position,[100 100 800 800]);num_points 14; [num,txt,raw] xlsread(test.xlsx); x num(:,1); y num(:,2);d…...
mysql:MVCC机制
MVCC机制 MVCC机制主要是mysql的多版本并发控制的一个机制,它主要是允许mysql去保存同一时间对同一份数据的不同历史版本的,从而避免读写之间的锁竞争,从而去提高并发的性能。 像传统的锁机制(读写互斥锁(Read-Write …...
Vue3 + Element Plus 实现树形结构的“单选 + 只选叶子节点 + 默认选中第一个子节点”
在 Vue 项目中,我们常使用树形结构组件来展示层级数据。本文将介绍如何使用 Element Plus 的 <el-tree> 组件,在 Vue3 中实现以下需求: ✅ 只能勾选叶子节点 ✅ 每次只能选中一个节点(单选) ✅ 页面加载时默认…...

CAD精简多段线顶点、优化、删除多余、重复顶点——CAD c#二次开发
附部分代码如下: public static void Pl精简(){Document doc Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;Database db doc.Database;Editor ed doc.Editor;var plOrigon db.SelectCurve("\n选择多段线:");…...