Linux学习5----ps、pstree、kill
ps命令
查询进程信息
基本用法
1.ps
PID TTY TIME CMD
16482 pts/0 00:00:00 bash
24030 pts/0 00:00:00 ps
PID 进程id
CMD 正在执行的系统命令行
TTY 进程所属的控制台
TIME 总时间
2.ps -ef # 显示Linux所有进程的详细信息
UID PID PPID C STIME TTY TIME CMD
root 1 0 8 13:47 ? 00:43:46 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 13:47 ? 00:00:00 [kthreadd]
root 4 2 0 13:47 ? 00:00:00 [kworker/0:0H]
UID: 哪个用户执行的
PID: 进程id
PPID:父进程id
C:cpu使用资源百分比
STIME:进程执行的时间
TTY:该进程在哪个终端执行
TIME:该进程使用CPU总时长
CMD:用户执行某条命令产生的进程信息
3.ps -ef | grep vim # 找出vim相关的进程信息
4.ps aux # a 显示当前终端下多有进程,包括其他用户的 u 以用户为主的格式显示进程 x显示所有进程
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 8.6 0.0 46532 7016 ? Ss 13:47 45:46 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 7 0.0 0.0 0 0 ? S 13:47 0:12 [migration/0]
STAT:进程状态
S:终端睡眠中,可以被唤醒
s:进程含有子进程
R:运行中
D:不可终端睡眠
T:已停止
Z:僵尸进程,父进程异常崩溃
+:前台进程
N:低优先级进程
<:高优先级进程
L:被锁定
5.ps -eH # 显示进程树
pstree
安装
yum install pstree -y
或者 yum install psmisc -y
使用
1.[root@centos ~]# pstree
systemd─┬─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─containerd─┬─6*[containerd-shim─┬─pause]
│ │ └─8*[{containerd-shim}]]
│ ├─containerd-shim─┬─kube-apiserver───9*[{kube-apiserver}]
│ │ └─8*[{containerd-shim}]
│ ├─containerd-shim─┬─etcd───14*[{etcd}]
│ │ └─8*[{containerd-shim}]
│ ├─containerd-shim─┬─kube-proxy───7*[{kube-proxy}]
│ │ └─8*[{containerd-shim}]
│ ├─containerd-shim─┬─kube-controller───7*[{kube-controller}]
│ │ └─8*[{containerd-shim}]
│ ├─containerd-shim─┬─kube-scheduler───8*[{kube-scheduler}]
│ │ └─8*[{containerd-shim}]
│ └─26*[{containerd}]
├─crond
├─dbus-daemon───{dbus-daemon}
├─dockerd───33*[{dockerd}]
├─irqbalance
├─kubelet───17*[{kubelet}]
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───6*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd───3*[systemd-udevd]
├─tuned───4*[{tuned}]
└─vmtoolsd───2*[{vmtoolsd}]
2.[root@centos ~]# pgrep docker
1382
kill命令
发送相关信号给进程,达到不同的停止效果
常用信号
-
1 SIGHUP 挂起进程,终端突然掉线,用户突然退出
-
2 SIGINT 中断信号,一般常用ctrl + c 发送信号2
-
3 SIGQUIT 退出信号,一般用ctrl + \ 发送信号3
-
9 SIGKILL 强制中断信号,一般用于立即杀死进程
-
15 SIGTERM kill默认使用的信号 终止进程
-
20 SIGTSTP 暂停进程 一般通过ctrl + z发出
使用
kill -9 pid # 立即杀死进程
kill pid #终止进程
killall nginx #终止所有的Nginx进程
pkill nginx #杀死所有Nginx进程(包含子进程)
kill -0 pid #判断进程是否存在 存在返回0 不存在返回1
echo $? #shell的特殊变量,取出上一次执行结果
tty # 查看本窗口连接信息
[root@centos ~]# tty
/dev/pts/0
w # 查看这台机器所有连接信息
[root@centos ~]# w
12:11:12 up 9:40, 2 users, load average: 6.53, 6.61, 6.48
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.50.1 11:35 0.00s 0.15s 0.11s -bash
root pts/1 192.168.50.1 12:10 8.00s 0.07s 0.01s ping baidu.com
pkill -t pts/1 #杀死该连接下的进程
pkill -t -9 pts/1 #杀死所有进程及ssh进程
播种和收获通常不在一个季节,而中间的过程叫做坚持~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构