进程管理与操作

进程管理

        程序:静态的代码,占用磁盘空间

        进程:动态的代码,占用内存,cpu

        唯一标识:PID  编号

        父进程/子进程    僵尸进程    孤儿进程

查看进程树

  • pstree — Processes Tree

—格式:pstree [选项] [PID或用户名]

  • 常用命令选项

— -a:显示完整的命令行

— -p:列出对应PID编号

systemd:所有进程的父进程,上帝进程

终端1:

[root@server ~]# su - njw

[njw@server ~]$ vim abc.txt

终端2:

[root@server ~]# pstree njw          #查询njw运行的进程

bash───vim

[root@server ~]# pstree -p njw

bash(10176)───vim(10271)

[root@server ~]# pstree -ap njw        #显示当前njw运行的所有进程

bash,10176

  └─vim,10271 abc.txt

pstree支持过滤命令

[root@server ~]# pstree | grep named

        |-named---3*[{named}]

查看进程快照

  • ps — Processes Snapshot

—格式:ps  [选项]...

  • 常用命令选项

— aux:显示当前终端所有进程(a)、当前用户在所有终端下的进程(x),以用户格式输出(u)

— -elf:显示系统内所有进程(-e)、以长格式输出信息(-I)、包括最完整的进程信息(-f)

  • ps aux操作

—列出正在运行的所有进程

[root@server ~]# ps aux

 进程管理与操作

用户  进程ID  %CPU  %内存  虚拟内存  固定内存  终端  状态  起始时间  CPU时间  程序指令

  • ps -elf 操作

—列出正在运行的所有进程,查询进程的父进程

[root@server ~]# ps -elf

 进程管理与操作

PPID:父进程ID;    PRI/NI:进程优先级,数值越小优先级越高

进程动态排名

  • top交互式工具

—格式:top  [-d 刷新秒数]  [-U  用户名]

[root@server ~]# top -d 1

大写P  进行CPU排序

大写M  进行内存排序

 进程管理与操作

系统时间  虚拟机运行时间未关机  正在登陆系统的用户  CPU在一定时间内处理进程个数的平均值 

总共进程个数  正在运行的进程个数  待机的进程个数  0个停止  0个僵尸进程

检索进程

  • pgrep — Process Grep

—用途:grep  [选项]...  查询条件

  • 常用命令选项

— -l:输出进程名,而不仅仅是PID

— -U:检索指定用户的进程

— -x:精确匹配完整的进程名

[root@server ~]# pgrep -l a    #查找名字带a的进程

 进程管理与操作

[root@server ~]# pgrep -lU njw    #查询njw用户运行的进程

[root@server ~]# pgrep -xl rsyslogd

1080 rsyslogd

#######################################################################

进程的前后台的调度

  • 前台启动

—输入正常命令行,运行期间占用当前终端

  • 后台启动

—在命令行末尾添加"&"符号,不占用当前终端

  • Ctrl + z 组合键

—挂起当前进程(暂停并转入后台)

  • jobs 命令

—查看后台任务列表

  • fg 命令

—将后台任务恢复到前台运行

  • bg 命令

—激活后台被挂起的任务

[root@server ~]# sleep 900 &          #正在运行放入后台

[1] 12338               

[root@server ~]# jobs                        #查看后台运行的进程

[1]+  Running                sleep 900 &

[root@server ~]# sleep 800

^Z                                                        #Ctrl + z 暂停放入后台

[2]+  Stopped                sleep 800

[root@server ~]# bg 2                        #将后台编号为2的进程继续运行

[root@server ~]# jobs

[1]-  Running                sleep 900 &

[2]+  Running                sleep 800 &

[root@server ~]# fg 2                          #将后台编号为2的进程恢复到前台

sleep 800

^C                                                        #按Ctrl + c 终止进程

[root@server ~]# jobs

[1]+  Running                sleep 900 &

[root@server ~]# fg 1                          #将后台编号为1的进程恢复到前台

sleep 900

^C                                                        #按Ctrl + c 终止进程

[root@server ~]# jobs

####################################################################

杀死进程

  • 干掉进程的不同方法

—Ctrl + c 组合键,终端当前命令程序

—kill  [-9]  PID... 、kill  [-9]  %后台任务编号

—killall  [-9]  进程名  ...

—pkill  查找条件

#选项 -9 为强制杀死进程,一般用于僵尸进程和孤儿进程

[root@server ~]# sleep 500 &

[1] 12574

[root@server ~]# sleep 600 &

[2] 12581

[root@server ~]# sleep 700 &

[3] 12591

[root@server ~]# sleep 800 &

[4] 12610

[root@server ~]# jobs -l        #显示后台进程,包括进程PID编号

[1]  12574 Running                sleep 500 &

[2]  12581 Running                sleep 600 &

[3]- 12591 Running                sleep 700 &

[4]+ 12610 Running                sleep 800 &

[root@server ~]# kill 12574

[1]  Terminated              sleep 500

[root@server ~]# jobs -l

[2]  12581 Running                sleep 600 &

[3]- 12591 Running                sleep 700 &

[4]+ 12610 Running                sleep 800 &

[root@server ~]# kill -9 12581

[2]  Killed                  sleep 600

[root@server ~]# jobs -l

[3]- 12591 Running                sleep 700 &

[4]+ 12610 Running                sleep 800 &

[root@server ~]# killall sleep

[3]-  Terminated              sleep 700

[4]+  Terminated              sleep 800

[root@server ~]# jobs -l

######################################################################

强制踢出一个用户(杀死该用户开启的所有进程)

[root@server ~]# killall -9 -u njw

上一篇:Kubernetes学习日记(四)


下一篇:12 多线程