🏡博客主页: Passerby_Wang的博客_CSDN博客-系统运维,云计算,Git学习笔记领域博主
🌐所属专栏:『Linux基础』
🌌上期文章: Linux基础-磁盘阵列RAID
📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 关注、点赞、收藏、评论。
目录
一、概述
进程是指一个内存中运行的运用程序,每一个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序,是一个进程从创建到消亡的过程。
二、查询进程
1、pstree命令
1)功能
pstree(Processes Tree) 查看进程树
2)格式
pstree [选项] [PID或用户名]
3)常用命令选项
-a:显示完整的命令行
-p:列出对应PID编号
-h:列出树状图时,特别标明现在执行的程序
-l:采用长列格式显示树状图
-u:显示用户名称
-V:显示版本信息
4)实例
[root@wangwu ~]# pstree -a
systemd --switched-root --system --deserialize 22
├─ModemManager
│ └─2*[{ModemManager}]
├─NetworkManager --no-daemon
│ ├─dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf...
│ └─2*[{NetworkManager}]
├─VGAuthService -s
... ... ...
[root@wangwu ~]# pstree -p
systemd(1)─┬─ModemManager(725)─┬─{ModemManager}(739)
│ └─{ModemManager}(750)
├─NetworkManager(870)─┬─dhclient(23845)
│ ├─{NetworkManager}(906)
│ ├─{NetworkManager}(908)
│ └─{NetworkManager}(28842)
├─VGAuthService(757)
... ... ...
[root@wangwu ~]# pstree -u
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─VGAuthService
... ... ...
2、ps命令
1)功能
ps(Processes Snapshot) 查看进程
2)格式
ps [选项]
3)常用命令选项(组合)
aux:
a:显示当前终端所有进程
u:以用户格式输出
x:当前用户在所有终端下的进程
-elf:
-e:显示系统内所有进程
-l:以长格式输出信息
-f:包括最完整的进程信息
4)实例
ps aux 列出正在运行的所有进程
[root@wangwu ~]# ps -aux
用户 进程ID %CPU % 内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令
USER PID %CPU % MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 193788 3276 ? Ss 09:43 0:02 /usr/lib/systemd/
root 2 0.0 0.0 0 0 ? S 09:43 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 09:43 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 09:43 0:01 [ksoftirqd/0]
ps -elf 列出正在运行的所有进程
[root@wangwu ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY IME CMD
4 S root 1 0 0 80 0 - 48447 ep_pol 09:43 ? 00:00:03 /usr/lib/systemd/
1 S root 2 0 0 80 0 - 0 kthrea 09:43 ? 00:00:00 [kthreadd]
1 S root 4 2 0 60 -20 - 0 worker 09:43 ? 00:00:00 [kworker/0:0H]
1 S root 6 2 0 80 0 - 0 smpboo 09:43 ? 00:00:02 [ksoftirqd/0]
#PPID:父进程的PID号
#PRI/NI:进程优先级,数值越小优先级越高
3、top命令
1)功能
top 进程动态排名
2)常用格式
top [-d 刷新秒数] [-U 用户名]
3)实例
[root@wangwu ~]# top -d 3 -U root
top - 15:30:41 up 4:54, 3 users, load average: 0.03, 0.55, 4.94
Tasks: 215 total, 3 running, 212 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.7 us, 3.7 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995640 total, 72628 free, 626060 used, 296952 buff/cache
KiB Swap: 2097148 total, 1876988 free, 220160 used. 137220 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
95182 root 20 0 162088 2348 1592 R 1.0 0.2 0:00.28 top
93658 root 20 0 113284 1604 1336 S 0.7 0.2 0:01.58 bash
399 root 20 0 0 0 0 R 0.3 0.0 0:20.93 xfsaild/dm-0
93649 root 20 0 165252 6172 4772 S 0.3 0.6 0:03.64 sshd
1 root 20 0 193788 4324 2392 S 0.0 0.4 0:21.92 systemd
4、pgrep命令
1)功能
pgrep(Process Grep) 检索进程
2)格式
pgrep [选项]... 查询条件
3)常用命令选项
-l:输出进程名
-U:检索指定用户的进程
-x:精确匹配完整的进程名
4)实例
[root@wangwu ~]# pgrep -l ftp #列出名称包含为 ftp的进程信息
25610 sftp-server
93696 sftp-server
[root@wangwu ~]# pgrep -lx sftp-server #精准查找进程信息
93696 sftp-server
[root@wangwu ~]# pgrep -l -U root #列出属于用户root的所有进程
1 systemd
2 kthreadd
4 kworker/0:0H
6 ksoftirqd/0
7 migration/0
... ... ...
三、进程的前后台调度
1、前台启动
输入正常命令行,运行期间占用当前终端
2、后台启动
在命令行末尾添加“&”符号,不占用当前终端
3、进程的前后台调度
1)Ctrl + z
功能
挂起当前进程(暂停并转入后台)
实例
[root@wangwu ~]# top
... ... ...
%Cpu(s): 1.3 us, 3.3 sy, 0.0 ni, 95.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995640 total, 72680 free, 623704 used, 299256 buff/cache
KiB Swap: 2097148 total, 1877244 free, 219904 used. 139704 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
119964 root 20 0 162088 2328 1576 R 0.7 0.2 0:00.26 top
399 root 20 0 0 0 0 R 0.3 0.0 0:22.25 xfsaild/dm-0
758 root 20 0 320176 2108 1600 S 0.3 0.2 1:17.31 vmtoolsd
... ... ...
Ctrl + z 组合键
[1]+ Stopped top
2)jobs 命令
功能
查看后台任务列表
常用格式
jobs [-l 列出进程的PID号]
实例
[root@wangwu ~]# jobs -l
[1]- 119964 Stopped (signal) top
3)fg 命令
功能
将后台任务恢复到前台运行
常用格式
fg [数字]
实例
[root@wangwu ~]# fg #缺省序号则为最近1个任务
[root@wangwu ~]# top
... ... ...
%Cpu(s): 1.3 us, 3.3 sy, 0.0 ni, 95.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995640 total, 72680 free, 623704 used, 299256 buff/cache
KiB Swap: 2097148 total, 1877244 free, 219904 used. 139704 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
119964 root 20 0 162088 2328 1576 R 0.7 0.2 0:00.26 top
399 root 20 0 0 0 0 R 0.3 0.0 0:22.25 xfsaild/dm-0
758 root 20 0 320176 2108 1600 S 0.3 0.2 1:17.31 vmtoolsd
... ... ...
4)bg 命令
功能
激活后台被挂起的任务
常用格式
bg [数字]
实例
[root@wangwu ~]# bg #缺省序号则为最近1个任务
[1]+ top &
四、杀死进程
1、Ctrl+c
1)功能
中断当前命令程序
2)实例
[root@wangwu ~]# vim /wangwu.txt
Ctrl+c 组合键
^C
2、kill命令
1)功能
kill 请求目标进程退出(杀死进程)
2)常用格式
kill [-9 强制杀死进程] PID...
3)实例
[root@wangwu ~]# ps aux | grep top
root 1975 0.0 0.2 162088 2324 pts/1 T 17:19 0:00 top
root 2483 0.0 0.0 112812 976 pts/2 R+ 17:21 0:00 grep --color=auto top
root 25076 0.0 1.0 1039524 10012 ? Sl 11:42 0:03 nautilus-desktop --force
[root@wangwu ~]# kill -9 1975
[root@wangwu ~]# ps aux | grep top
root 3581 0.0 0.0 112812 680 pts/2 R+ 17:24 0:00 grep --color=auto top
root 25076 0.0 1.0 1039524 10012 ? Sl 11:42 0:03 nautilus-desktop --force
3、killall命令
1)功能
killall 结束同名的的所有进程
2)常用格式
killall [-9] 进程名...
3)实例
[root@wangwu ~]# ps aux | grep top
root 4525 0.0 0.2 162088 2332 pts/1 T 17:27 0:00 top
root 5999 0.3 0.2 162088 2332 pts/1 T 17:31 0:00 top
root 6018 0.1 0.2 162088 2328 pts/1 T 17:31 0:00 top
root 6071 0.0 0.0 112812 976 pts/2 R+ 17:31 0:00 grep --color=auto top
root 25076 0.0 1.0 1039524 10012 ? Sl 11:42 0:03 nautilus-desktop --force
[root@wangwu ~]# killall -9 top
[root@wangwu ~]# ps aux | grep top
root 6194 0.0 0.0 112812 976 pts/2 R+ 17:31 0:00 grep --color=auto top
root 25076 0.0 1.0 1039524 10012 ? Sl 11:42 0:03 nautilus-desktop --force
4、pkill 命令
1)功能
pkill 按进程名来杀死指定进程(杀死指定用户的所有进程)
2)常用格式
pkill [-9强制杀死进程] [-U 用户名]
3)实例
[root@wangwu ~]# pkill -9 -U wangwu #踢出用户(杀死用户所有进程)