Linux教程

Linux 操作系统 07 - 进程管理

本文主要是介绍Linux 操作系统 07 - 进程管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Hello~大家好!我是今越,本文内容来源于平时的学习笔记,希望对大家有所帮助。鉴于个人水平有限,文中难免会有不足之处,欢迎留言评论。需要转载的朋友,请注明出处。感谢点赞和收藏。一起加油!:)

往期文章回顾
Linux 操作系统 01 - 目录篇
Linux 操作系统 02 - 文件篇
Linux 操作系统 03 - 用户和组管理
Linux 操作系统 04 - 权限管理
Linux 操作系统 05 - 定时任务调度
Linux 操作系统 06 - 磁盘管理

在 Linux 中,每个执行的程序都称为一个进程。每个进程都分配一个 ID 号。每个进程都有两种存在方式,前台和后台。所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程是在后台运行的。通常,系统服务都是以后台进程的方式存在的,而且都会常驻在系统中,直到关机才结束。

一、ps

功能描述:显示系统执行的进程

ps [选项] | grep xxx

选项

-a 显示当前终端的所有进程信息
-u 以用户的格式显示进程信息
-x 显示后台进程运行的参数

说明

1)端口配置文件:/etc/services

案例

[root@localhost ~]# ps
   PID TTY          TIME CMD
 18330 pts/0    00:00:00 bash
 19988 pts/0    00:00:00 ps

显示说明

PID 进程识别号
TTY 终端机号
TIME 此进程所消 CPU 时间
CMD 正在执行的命令或进程名


[root@localhost /]# ps -aux | grep sshd
root       7566  0.0  0.2 112756  4312 ?        Ss   15:58   0:00 /usr/sbin/sshd -D
root      17149  0.0  0.2 158712  5544 ?        Ss   15:59   0:01 sshd: root@pts/0
root      22335  0.0  0.0 112728   988 pts/0    S+   20:59   0:00 grep --color=auto sshd

显示说明

System V 展示风格
USER 进程执行用户
PID 进程号
%CPU 进程占用 CPU 的百分比
%MEM 进程占用物理内存的百分比
VSZ 进程占用的虚拟内存大小(单位:KB)
RSS 进程占用的物理内存大小(单位:KB)
TTY 终端名称,缩写
STAT 进程状态,其中 S - 睡眠,s - 表示该进程是会话的先导进程,N - 表示进程拥有比普通优先级更低的优先级,R - 正在运行,D - 短期等待,Z - 僵死进程,T - 被跟踪或者被停止
STARTED 进程的启动时间
TIME CPU 时间,即进程使用 CPU 的总时间
COMMAND 启动进程所用的命令和参数,如果过长会被截断显示


要求以全格式显示当前所有的进程,查看进程的父进程。

ps -ef | grep sshd

选项

-e 显示所有进程
-f 全格式

案例

[root@localhost /]# ps -ef | grep sshd
root       7566      1  0 15:58 ?        00:00:00 /usr/sbin/sshd -D
root      17149   7566  0 15:59 ?        00:00:01 sshd: root@pts/0
root      22373  17165  0 21:01 pts/0    00:00:00 grep --color=auto sshd

显示说明

BSD 风格
UID 用户 ID
PID 进程 ID
PPID 父进程 ID
C CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME 进程启动的时间
TTY 完整的终端名称
TIME CPU 时间
CMD 启动进程所用的命令和参数

二、kill & killall

如果某个进程执行到一半需要停止,或者是已经消耗了很大的系统资源,这时可以考虑停止该进程。

功能描述:通过进程号杀死/终止进程

kill [选项] 进程号

功能描述:通过进程名称杀死进程,也支持通配符,在系统因负载过大而变得很慢时很有用

killall 进程名称

选项

-9 表示强迫进程立即停止

案例

1)踢掉某个非法登录用户

kill 进程号

2)终止远程登录服务 sshd,在适当的时候再次重启 sshd 服务

kill sshd 对应的进程号

/bin/systemctl start sshd.service

3)终止多个 gedit

killall gedit

4)强制杀掉一个终端

kill -9 bash对应的进程号

三、pstree

功能描述:查看进程树,更加直观的查看进程信息

pstree [选项]

选项

-p 显示进程的 PID
-u 显示进程的所属用户

案例
pstree

四、top

功能描述:动态监控进程

top [选项]

选项

-d 秒数 指定 top 命令每隔几秒更新,默认是 3 秒
-i 使 top 不显示任何闲置或僵死进程
-p 通过指定监控进程 ID 来仅仅监控某个进程的状态

交互操作

P 以 CPU 使用率排序,默认就是此项
M 以内存的使用率排序
N 以 PID 排序
q 退出 top

说明

1)top 与 ps 命令很相似,它们都是用来显示正在执行的进程。top 与 ps 最大的不同在于,top 在执行一段时间后可以更新正在运行的进程;
top
案例

1)监视特定用户,例如 tom 用户

先输入 top 命令,回车,然后输入 u 回车,再输入用户名即可

2)终止指定的进程,例如结束 tom 登录

先输入 top 命令,回车,然后输入 k 回车,再输入要结束的进程 ID,最后输入 9 回车

3)指定系统状态更新的时间为每隔 10 秒自动更新

top -d 10

五、netstat

功能描述:查看系统中开启的服务和网络情况

netstat [选项]

选项

-a 列出全部服务,包含已经连接的服务和未连接的服务
-t 列出 tcp 数据
-u 列出 udp 数据
-l 列出正在监听的网络服务(不包含已经连接的服务)
-n 用端口号来显示服务,而不是用服务名
-p 列出该服务的进程 ID(PID)

案例

1)查看服务名为 sshd 的服务的信息

netstat -anp | grep sshd
netstat


慢慢来,保持专注,一点一点进步!
文章持续更新,感谢大家的点赞、收藏和评论,我是今越,我们下期再见:)

这篇关于Linux 操作系统 07 - 进程管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!