Linux学习_进程管理

基本介绍

1.在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
3.每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
3. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
基本参数

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

显示系统执行的进程

ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。
可以不加任何参数.

ps查看所有进程

[root@nyh ~]# ps -aux|more
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  2.7  0.0  19364  1540 ?        Ss   13:39   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    13:39   0:00 [kthreadd]
.......
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
用户名 进程id 进程占用CPU的百分比 进程占用物理内存的百分比 进程占用的虚拟内存大小(单位:KB) 进程占用的物理内存大小(单位:KB) 使用的终端 进程状态,其中S-睡眠
s-表示该进程是会话的先导进程
N-表示进程拥有比普通优先级更低的优先级
R-正在运行
D-短期等待
Z-僵死进程
T-被跟踪或者被停止等等
进程的启动时间 占用CPU的总时间 启动进程所用的命令和参数

ps查看单个进程

[root@nyh ~]# ps -aux | grep sshd
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root       2394  0.0  0.0  66236  1196 ?        Ss   13:40   0:00 /usr/sbin/sshd
root       2850  0.0  0.2 102084  4156 ?        Ss   13:40   0:00 sshd: root@pts/0 
root       4581  0.0  0.0 103332   856 pts/0    S+   17:18   0:00 grep sshd

ps查看所有进程的父进程

下面的3号进程的父进程是2号进程,2号和1号没有父进程,因为他们的PPID为0

[root@nyh ~]# ps -ef | more
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 13:39 ?        00:00:01 /sbin/init
root          2      0  0 13:39 ?        00:00:00 [kthreadd]
root          3      2  0 13:39 ?        00:00:00 [migration/0]
......

ps查看单个进程的父进程

ps -ef|grep xxx

[root@nyh ~]# ps -ef | grep sshd
root       2394      1  0 13:40 ?        00:00:00 /usr/sbin/sshd
root       2850   2394  0 13:40 ?        00:00:00 sshd: root@pts/0 
root       4729   2856  0 17:37 pts/0    00:00:00 grep sshd

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

终止进程kill和killall

若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该
进程。使用kill命令来完成此项任务。

基本语法:
kill [选项] 进程号(功能描述:通过进程号杀死进程)
killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

常用选项:
-9:表示强迫进程立即停止

案例:
案例一:踢掉某个非法登录用户(比如踢掉xiaoming)
首先找到这个进程
在这里插入图片描述
然后kill掉就可以了
可以看到进程不见了,说明被干掉了
在这里插入图片描述

案例二: 终止远程登录服务sshd, 在适当时候再次重启sshd服务
也是先找到然后按照进程号kill掉就可以了
在这里插入图片描述

案例三:终止多个gedit 编辑器
在这里插入图片描述

案例四:强制杀掉一个终端
先找到终端
在这里插入图片描述

查看进程树pstree

基本语法:
pstree [选项] 可以更加直观的来看进程信息

常用选项:
-p:显示进程的PID
-u :显示进程的所属用户

案例1:用树状的形式显示进程的pid
在这里插入图片描述

案例2:用树状的形式进程的用户id
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36901488/article/details/82800109
今日推荐