Linux进程管理
一.进程概念
进程就是系统未完成并且正在进行的工作
二.查看进程
【1】图形方式查看:gnome-system-monitor
【2】命令方式:ps
- 参数:-A 表示所有进程 -a 表示在当前环境中运行的进程,不包含环境信息
-u 显示进程用户信息 a 在当前环境中运行的进程 x 列出系统中所有运行包含tty输出设
f 显示进程的父子关系 e 显示进程的详细信息(系统资源的调用)
显示部分结果如下:
示例:显示进程所有信息(只显示了部分截图)
PID TTY TIME CMD
1 ? 00:00:03 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:00 migration/0
8 ? 00:00:00 rcu_bh
9 ? 00:00:00 rcuob/0
10 ? 00:00:01 rcu_sched
11 ? 00:00:01 rcuos/0
12 ? 00:00:00 watchdog/0
13 ? 00:00:00 khelper
14 ? 00:00:00 kdevtmpfs
示例:显示当前环境中运行的进程,没有进程的环境信息
7873 pts/0 00:00:00 ps
示例:显示当前进程的所属关系
PID TTY STAT TIME COMMAND
2180 pts/0 Ss 0:01 -bash
7912 pts/0 R+ 0:00 \_ ps f
590 tty1 Ss+ 0:56 /usr/bin/Xorg :0 -background none -verbose -auth /run
1210 ttyS0 Ss+ 0:00 /sbin/agetty --keep-baud ttyS0 115200 38400 9600
- ps常用组合:
ps aux ##显示系统中所有进程并显示进程用户
ps ef ##显示进程详细信息并显示进程父子关系
ps ax ##显示当前系统中的所有进程
PID TTY STAT TIME COMMAND
2180 pts/0 Ss 0:01 -bash XMODIFIERS=@im=ibus LANG=en_US.UTF-8 USER=root
7947 pts/0 R+ 0:00 \_ ps ef XDG_SESSION_ID=2 HOSTNAME=localhost TERM=x
590 tty1 Ss+ 0:56 /usr/bin/Xorg :0 -background none -verbose -auth /ru
1210 ttyS0 Ss+ 0:00 /sbin/agetty --keep-baud ttyS0 115200 38400 9600 PAT
- 显示进程指定信息:ps -o xxx
参数: comm ##进程名称
user ##进程所有人
group ##进程所有组
%cpu ##进程cpu使用率
%mem ##进程内存使用率
pid ##进程id
nice ##进程优先级
%CPU %MEM PID USER GROUP NI COMMAND
0.0 0.3 2180 root root 0 bash
0.0 0.1 7965 root root 0 ps
- 进程排序 :--sort=
ps ax --sort=+%cpu|-%cpu ##表示对cpu的使用率进行排序(+有小到大;-由大到小)
ps ax --sort=+%mem|-%mem ## 对内存的占用大小排序
%MEM USER UID COMMAND
16.1 root 0 gnome-shell
3.4 root 0 Xorg
2.5 root 0 nautilus
2.3 root 0 gnome-settings-
2.1 root 0 firewalld
1.9 root 0 goa-daemon
1.8 root 0 tuned
1.6 polkitd 999 polkitd
- stat中显示的信息 :
S ##进程状态 l ##内存中有锁定空间
N ##优先级低 < ##优先级高
+ ##前台运行 s ##顶级进程
三.进程优先级
【1】进程的优先级范围:-20~19
【2】优先级查看:ps ax -o pid,nice,comm
PID NI COMMAND
590 0 Xorg
1210 0 agetty
2180 0 bash
8053 0 ps
nice -n 优先级数字 进程名称
示例:开启vim并且指定程序优先级为-5
[1] 8056
[root@localhost mnt]# ps a -o pid,nice,comm
PID NI COMMAND
590 0 Xorg
1210 0 agetty
2180 0 bash
8056 -5 vim
8065 0 ps
[1]+ Stopped nice -n -5 vim
【4】改变进程优先级
renice -n 优先级数字 进程pid
示例:改变1806进程的优先级为-5
8065 0 ps
8056 (process ID) old priority -5, new priority -2
jobs ##查看被打入环境后台的进程
ctrl+z ##把占用终端的进程打入后台
fg jobsnum ##把后台进程调回前台
bg jobsnum ##把后台暂停的进程运行
comm & ##让命令直接在后台运行
五.进程信号
【1】常用信号等级
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程 (可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程 (不能被阻塞)
20 ##把进程打入后台 (可以被阻塞)
man 7 signal ##查看信号详细信息
【2】kill的使用
kill -信号 进程pid
killall -信号 进程名字
pkill -u student -信号
6.用户登记审查
w -f 查看使用地点
last 查看用户登录成功历史
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root :0 08:17 ?xdm? 8:12 0.11s gdm-session-worker [pam/gdm-
root pts/0 08:39 0.00s 1.96s 0.00s w
11:15:15 up 2:59, 2 users, load average: 0.01, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 08:17 ?xdm? 8:12 0.11s gdm-session-
root pts/0 172.25.254.77 08:39 3.00s 1.96s 0.00s w -f
root pts/3 172.25.254.77 Wed Jul 25 09:54 - 09:59 (00:04)
root pts/2 :0 Wed Jul 25 09:34 - 09:58 (00:24)
root pts/1 :0 Wed Jul 25 08:39 - 09:58 (01:18)
root pts/0 172.25.254.77 Wed Jul 25 08:39 still logged in
root :0 :0 Wed Jul 25 08:17 still logged in
(unknown :0 :0 Wed Jul 25 08:16 - 08:17 (00:00)
reboot system boot 3.10.0-123.el7.x Wed Jul 25 08:16 - 11:15 (02:59)
root pts/2 172.25.254.77 Tue Jul 24 22:40 - 22:54 (00:13)
root pts/1 :0 Tue Jul 24 21:09 - crash (11:06)
root pts/0 :0 Tue Jul 24 20:01 - crash (12:14)
root :0 :0 Tue Jul 24 20:01 - crash (12:15)
7.进程的动态监控
【1】命令:top
1. ##显示cpu每个核的负载
s ##调整刷新频率
c ##CPU负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定进程发起信号
q ##退出
Tasks: 146 total, 2 running, 143 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0
KiB Mem: 969416 total, 833532 used, 135884 free, 884 buffers
KiB Swap: 0 total, 0 used, 0 free. 369560 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8148 root 20 0 123632 1556 1096 R 0.3 0.2 0:00.02 top
1 root 20 0 50468 3984 2208 S 0.0 0.4 0:03.37 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.04 ksoftirq+
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/+
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migratio+
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0
10 root 20 0 0 0 0 S 0.0 0.0 0:01.21 rcu_sched
11 root 20 0 0 0 0 R 0.0 0.0 0:02.01 rcuos/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.17 watchdog+
13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback
17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegri+