进程
1.进程状态
R(running):该程序正在运行
S(sleeping):该程序正在睡眠状态(idle),但可以被唤醒(signal)
D 不可被唤醒的睡眠状态:通常进程可能在等待I/O的情况
T (stop):停止状态,可能是在工作控制(背景暂停)或除错状态(traced)
Z(Zombie):僵尸状态,该程序已经终止但却无法被移除至内存外
2.查看进程
(1)常用命令
ps -A ##所有进程
-a ##在当前环境中运行的进程,不包含环境信息
-u ##显示进程用户信息
a ##再当前环境中运行的进程
x|-x ##列出系统中所有运行包含tty输出设备
f ##显示进程的父子关系
e ##显示进程的详细信息(系统资源的调用)
查看所有进程
查看当前环境运行的进程
显示进程用户信息
列出系统中所有运行包含tty输出设备
显示进程的详细信息
显示进程的父子信息
(2)常用组合
ps aux ##显示系统中所有进程并显示进程用户
ps ef ##显示进程详细信息并显示进程父子关系
ps ax ##显示当前系统中的所有进程
pstree ##显示当前系统的进程树
(3)显示进程指定信息(可与进程的查看命令一起使用)
默认显示当前环境的进程指定信息,加上ax会显示全部
ps -o xxx ##显示进程的指定信息
-o comm ##进程名称
user ##进程所有人
group ##进程所有组
%cpu ##进程cpu使用率
%mem ##进程内存使用率
pid ##进程id
nice ##进程优先级
查看所有进程的内存使用率
3.进程排序
ps ax --sort=
+%cpu|-%cpu ##按cpu使用率升序排列|按cpu使用率降序排列
+%mem|-%mem ##按内存使用率生序排序|按内存使用率降序排序
按cup使用率升序排序
按内存使用率降序排序
举例: 抓取系统中内存使用量排在前五的进程的pid
ps ax -o pid --sort=-%mem|head -n 5
4.进程优先级
(1).进程的优先级范围
-20~19 ##-20表示优先级最高,19表示优先级最低
(2)优先级查看
ps ax -o pid,nice,comm,stat
补充:
stat中显示的信息
S ##进程状态
l ##进程优先级
N ##优先级低
< ##优先级高
+ ##前台运行
s ##顶级运行
(3)指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n -10 firefox ##开启firefox并且指定程序的优先级为-10
(4)改变进程优先级
renice -n 优先级数字 进程pid
renice -n -5 2814 ##改变端口为2814进程的优先级
[root@localhost ~]# renice -n -5 2814
2814 (process ID) old priority 0, new priority -5
[root@localhost ~]# ps -o pid,nice,comm,stat
PID NI COMMAND STAT
2814 -5 bash S<s
2913 5 vim TN
2956 -5 ps R<+
gedit &
注意:&符号表示让进程运行并放入后台
5.环境中进程的前后台调用
jobs ##查看环境后台中运行的程序
ctrl+z ##把占用终端的进程打入后台暂停运行(无法进行操作)
fg 后台进程运行的工作号 ##把后台进程调回前台(点进程序后可以进行操作(占用终端)但如果程序再此打入后台后便无法使用)
bg 后台进程运行的工作号 ##把后台暂停的进程运行(点进程序后可以进行操作且不占用终端)
进程名 & ##让进程直接在后台运行,(比如vim &,gedit &)
注意:后台进程工作号后的±(如果fg后没有加工作号那么则先运行默认操作再次默认操作)
+ 表示默认操作
- 表示次默认擦作
无符号 表示暂时无操作,必须等默认操作和次默认操作之后才会给其赋值操作
示例:
开启一个进程
按ctrl+z并查看jobs(后台进程)
用fg命令将进程调回前台
输入gedit & 让其在后台运行
后台进程的操作顺序
当输入fg时后面不加进程的工作号,将按默认顺序依次操作
6.进程信号
1 ##进程重新加载配置(在进程不被关闭的状态下让其重新读取配置文件然后更改配置)
2 ##删除进程在内存中的数据(有锁定空间的进程会被关闭,但无锁定空间的进程不会被关闭比如shell)
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程 (不能被阻塞)
15 ##正常关闭进程 (可能会被阻塞)
18 ##运行暂停的进程(进程在被运行后会自动写入暂停时输入的字符)
19 ##暂停某个进程 (不能被阻塞)
20 ##把进程打入后台(暂停) (可以被阻塞)
比如手动开启的gedit用信号20暂停时还可以继续操作,用信号19暂停时便不可以操作
用shell开启的gedit用信号19和20都可以暂停且不可以操作
man 7 signal ##查看信号详细信息
kill -信号 进程pid ##按pid操作
killall -信号 进程名字 ##按名操作
pkill -u student -信号 ##按条件操作
举例:
利用信号9强行结束一个进程
利用信号2删除gedit在内存中的数据,因为gedit在系统中有锁定空间,所以被结束
利用信号20将gedit进程打入后台
7.进程的动态监控
top
1 ##显示cup每个核的负载
s ##调整刷新频率
c ##cpu负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定进程发起信号
q ##退出
输入s将刷新频率有1.0s到2.0s
输入m则变成由内存使用量mem排序
8.控制服务
(1)什么是服务
定义:系统中运行的对于系统本身没有意义但是对客户主机有重大意义的程序叫做服务性软件,简称服务(也可看作是一类进程的总和)
cs模型
c:client
s:server
vnc为例
c-----tigervnc viewer客户端
s-----vncserver服务端
(2)控制服务
系统初始化进程可以对服务进行相应的控制
(3)当前系统初始化进程
systemd ##系统初始化进程
pstree ##显示系统中的进程数
(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 ##列出已经开启服务当前状态
systemctl list-unit-files ##列出所有服务开机启动的状态
查询sshd的服务状态
关闭sshd的服务后再查询服务状态
设置sshd服务开机启动
当查看所有服务开机启动的的状态时
其后有一栏STATE的状态
关于state(状态)的几种状态:
1.static ##静止
2.masked ##锁定
3.enabled ##开启
4.disabled ##关闭
systemctl list-dependencies##列出服务的依赖
mask sshd(锁定后服务无法开启)
unmask sshd
注意看Loaded栏的变化
当服务处于锁定状态时,无法用start开启服务
解决方法:先将服务解除锁定,再开启
9.关于系统开机时是否显示图像
systemctl set-default multi-user.target ##设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target ##设定系统启动级别为图形模式
设置开机为无图形页面
开机页面