一.进程的了解
1、进程的概念
进程就是系统未完成并且正在进行的工作(比如运行中的软件)
线程:程序调用的最小单元(线程使用的系统资源可以来回切换)
进程:资源调用的最小单元(进程使用的系统资源不可以切换)
2、进程的状态
状态 |
意义 |
R(Running) |
该程序正在运行 |
S(Sleeping) |
该程序正在休眠,但可以被唤醒(通过signal) |
D |
该程序正在睡眠,不可被唤醒 |
T(stop) |
停止状态,可能是在工作控制(背景暂停)或者除错(traced)的状态 |
Z(Zombie) |
该程序处于僵尸状态,程序已经终止,但是无法被移除至内存外(无法结束进程) |
3、如何查看进程
1)图形方式查看
gnome-system-monitor
2)进程查看命令
ps:静态查看进程信息
命令 |
功能 |
ps -A |
系统所有环境中的所有进程 |
ps -a |
当前环境中的所有进程,不包括自身环境的进程 |
ps -u |
显示进程的用户信息 |
ps a |
显示当前环境中运行的进程,包括环境信息(自身环境的进程) |
ps x |
列出系统中所有包含tty输出设备,在环境中有终端的才会显示出来,通常与a一起使用,可列出较完整的信息 |
ps f |
显示进程的父子关系 |
ps e |
显示进程的详细信息(系统资源的调用信息) |
ps l |
较长、较详细的将该PID的信息列出 |
(3)常用ps组合
命令 |
功能 |
ps aux |
显示系统中所有进程,并显示进程用户 |
ps ef |
显示进程详细信息并显示进程父子关系 |
ps ax |
显示当前系统的所有进程 |
pstree |
显示当前系统的进程树 |
(4)显示进程指定信息
命令 |
功能 |
ps -o xxx |
显示进程的指定信息 |
ps -o comm |
显示进程名称 |
ps -o user |
显示进程所有人 |
ps -o group |
显示进程的所有组 |
ps -o %cpu |
显示进程的cpu使用率 |
ps -o &mem |
显示进程的内存使用率 |
ps -o pid |
显示进程的pid |
ps -o nice |
显示进程的优先级 |

(5)进程排序
命令 |
功能 |
ps ax --sort=+%cpu/-%cpu |
按照cpu使用率由大到小或由小到大排序 |
+%mem/-%mem |
按照内存使用率由大到小或由小到大排序 |

二.stat中显示的信息
显示的信息 |
意义 |
S |
进程的状态 |
l |
内存中有锁定空间 |
N |
优先级比较低 |
< |
优先级比较高 |
+ |
在前台运行的(此时进行操作会默认打开此文件) |
s |
顶级进程 |

三.进程的优先级
1、进程的优先级范围
-20~19
数值越小优先级越高
2、优先级的查看
命令 |
功能 |
ps ax -o pid,nice,comm |
查看进程的pid,优先级,名称 |

3、指定特定优先级开始这个进程
命令 |
功能 |
nice -n 数字 进程名称 |
以数字代表的优先级开始这个进程 |
nice -n 10 vim & |
开启vim窗口,并指定程序以10的优先级开始 |

4、改变进程的优先级
命令 |
功能 |
renice -n 数字 进程pid |
改变该pid所表示的进程的优先级 |
renice -n -7 2234 |
改变2234进程的优先级为-7 |
四.环境中进程的前后台的调用
命令 |
功能 |
jobs |
查看在环境后台的进程 |
Ctrl+z |
把正在运行的进程打入后台 |
fg xx |
把后台的进程(休眠)调回前台,xx为进程 |
bg xx |
把后台暂停的进程运行(不意味着调回前台) |
comm & |
让命令直接在后台运行,不经过前台 |

五.进程的信号
1、常用的信号等级及意义
等级 |
意义 |
1 |
进程重新加载配置 |
2 |
删除进程在内存中的数据 |
3 |
删除鼠标在内存中的数据(晃动鼠标则恢复) |
9 |
强行结束单个进程(该信号不能被阻塞) |
15 |
正常关闭进程(该信号可以被阻塞) |
18 |
运行暂停的进程 |
19 |
暂停某个进程(该信号不能被阻塞) |
20 |
把进程打入后台(该信号可以被阻塞) |
命令 |
功能 |
man 7 signal |
信号的详细信息查询 |
命令 |
功能 |
kill -信号数字 进程pid |
对该pid代表的进程执行信号数字表示的操作 |
killall -信号数字 进程名字 |
对含有进程名字的一类进程执行信号数字表示的操作 |
pkill -u student -信号数字 |
执行某一信号的批量处理 |

六.进程的动态监控
1、top
命令 |
功能 |
top 1. |
显示cpu每个核的负载 |
top s |
调整刷新频率 |
top c |
按cpu负载使用率进行排序 |
top m |
按内存使用率进行排序 |
top h |
查看帮助 |
top u |
查看指定用户进程 |
top k |
对指定的进程发起信号 |
top q |
退出 |
七.控制服务
1、控制服务的方式
系统初始化进程可以对服务进行相应的控制
2、当前系统的初始化进程是什么
命令 |
功能 |
systemd |
系统初始化进程 |
pstree |
系统中的进程树 |
3、远程登录及远程复制


4、进程的控制命令
ssh–>sshd
client server
命令 |
功能 |
systemctl |
服务控制命令 |
systemctl status sshd |
查看服务状态,若显示inactive则不可用,显示active则可用 |
systemctl start sshd |
开启服务 |
systemctl stop sshd |
关闭服务 |
systemctl restart sshd |
重启服务 |
systemctl reload sshd |
重新加载服务的配置 |
systemctl enable sshd |
设置该服务开启自动启动 |
systemctl disable sshd |
设置该服务开启不启动 |
systemctl list-units sshd |
列出已经开启的服务当前的状态 |
systemctl list-unit-files sshd |
列出所有服务开机时的状态 |
systemctl list-dependencies sshd |
列出服务的依赖 |
systemctl set-default multi-user.targer sshd |
设定系统启动时默认为多用户模式 |
systemctl set-default graphical.targer sshd |
设定系统启动时默认为图形模式 |
5、添加sshd登录信息
命令 |
功能 |
vim /etc/motd |
文件内容就是登录后显示的信息 |
6、用户的登录审计
(审计就是审查记录)
(1)w
命令 |
功能 |
w |
查看正在使用当前系统的用户,查看的是/var/run/utmp文件 |
w -f |
查看正在使用当前系统的用户的使用来源 |
w -i |
显示正在使用当前系统的用户的IP |

(2)last
命令 |
功能 |
last |
查看使用过并且退出的用户信息,查看的是/var/log/wtmp文件 |

(3)lastb
命令 |
功能 |
lastb |
查看试图登录,但没成功的用户信息,查看的是/var/log/btmp文件 |