Linux系统的进程管理

进程管理

1. 什么是进程

程序(program)
放置在储存媒体中(如硬盘,光盘,软盘,磁带等),为实体文件的形态存在
进程
程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序

2.进程状态

R(Running):该程序正在运行中;
S(Sleep):该程序正在睡眠状态(idle),但可以被唤醒(signal)
D:不可被唤醒的睡眠状态,通常进程可能在等待1/0的情况。
T;停止状态(STOP),可能是在工作控制(背景暂停)或除错(traced)状态;
Z:(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外

3.查看进程

(1)图形方式查看

 gnome-sysem-monitor   ##打开任务管理器

Linux系统的进程管理_第1张图片
(2)进程查看命令
ps 查看进程状态
Linux系统的进程管理_第2张图片

ps -a shell里运行的程序 ,不包含环境信息(没有环境本身的进程)
ps a 当前环境中运行的进程,包含环境信息
ps -A (-e)所有的进程 包含运行环境
ps -d 显示 (不常用)
ps x 列出系统中所有运行包含tty输出设备
ps e 所用到的系统资源
ps ae 显示系统的拓展信息
ps -u 显示进程的用户
ps f 查看进程父子关系(父进程关闭子进程关闭)(孤儿程序受系统的初始化程序控制)

Linux系统的进程管理_第3张图片

ps常用组合

ps af 进程的存储关系(父子信息)
ps aux 显示系统中的所有进程并且显示进程用户
ps ef 显示进程详细信息并显示进程父子关系
ps ax 显示当前系统中的所有进程
pstree 显示当前系统的进程树

Linux系统的进程管理_第4张图片
Linux系统的进程管理_第5张图片

#####kill -9 结束进程
系统初始化进程(不会被关闭 poweroff关机可以关闭)控制一些孤儿进程(父级进程关闭时,一些子级进程不会被关闭)
显示进程指定的信息

ps -o  xxx     ##显示进程的指定信息
ps -o	comm   ##进程名称
ps -o	user   ##进程所有人
ps -o  %cpu    ##进程所有组
ps -o  %mem   ##进程的cpu使用率
ps -o pid     ##进程的id
ps -o nice     ##进程的优先级	

Linux系统的进程管理_第6张图片

4.进程排序

ps ax --sort=+%cpu (升序,+可以省略) / -%cpu(降序) ##按cpu使用率排序
ps ax --sort=+%mem / -%mem(降序) ##按内存使用率排序

例子: 列出系统cpu占用率前五的pid

ps ax -o pid --sort=-%men| head -n6 | tail -n5

##’+'表示正序排列,‘-’表示倒叙排列
Linux系统的进程管理_第7张图片

stat中显示的信息
s 进程状态
l 内存中有锁存空间
N 优先级低
< 优先级高
+ 前台运行
s 顶级进程
R+ 正在运行

Linux系统的进程管理_第8张图片

5.进程优先级

1.进程优先级的范围
-20~19

进程的优先级(越负,优先级越高)
2.优先级查看

watch -n1 ps a -o stat,comm,pid,nice   #加上监控实时查看

3.指定某个优先级开启进程:nice
nice -n 优先级数字 进程名称
nice -n (5) (pid) 设置进程一开始时的优先级

nice -n -5 vim &    ##开启vim并且指定程序的优先级为-5

Linux系统的进程管理_第9张图片
4.改变进程优先级 :renice
renice -n 优先级数字 进程pid
renice -n (5) (pid) 改变进程的优先级

renice -n -5  4073     ##改变4073进程的优先级为-5

Linux系统的进程管理_第10张图片

6.环境中进程的前后台调用

+ 表示正在进行的;- 表示次位

  jobs ##查看打入后台的进程
  ctrl+z          ##把占用终端的进程打入后台
  comm  &    ##让命令直接在后台运行
  fg    jobnumber     ##把后台进程调回前台
  bg   jobnumber     ##把后台暂停的进程运行

Linux系统的进程管理_第11张图片
Linux系统的进程管理_第12张图片

-注意:
有些命令不能在后台运行(例如 vim & ;)
在vim命令窗口下ctrl+z 将vim 打入后台

Linux系统的进程管理_第13张图片

7.进程信号

1.常用信号等级

1 进程重新加载配置(进程不关闭的情况下重新加在配置)
2 删除进程在内存中的数据(不能是锁定的内存(锁定的空间数据被删除进程就会被关闭))(ctrl+c)
3 删除鼠标在内存中的数据(ctrl+\)
9 强行结束单个进程(不能被阻塞)
15 正常关闭进程(可能被阻塞)
18 运行暂停的进程
19 暂停某个进程(不能被阻塞)
   man 7 signal    ## 查看进程信号详细信息

kill ---->向内核之间发送信号
kill -信号 进程pid
killall -信号 进程名称
pkill -u student -信号

8.进程的动态监控

1.top

1. 显示cpu每个核的负载
s 调正刷新频率
c cpu负载排序
m 内存使用量排序
h 查看帮助
u 查看指定用户的进程
k 对指定进程发起信号
z 显示颜色
b 高亮显示
q 退出

Linux系统的进程管理_第14张图片

9.控制服务

1.服务:做了对他人的帮助,对自己没有影响。

2.控制服务
定义:系统中运行的对于系统本身没有意义但是对客户主机有重大意义的程序叫做服务性软件简称服务。

cs模型 : c——client
s——server
当前系统初始化进程
systemd ###系统初始化进程
pstree ###显示系统中的进程树
Linux系统的进程管理_第15张图片

3.进程控制命令
ssh------->sshd(远程控制连接的服务)
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-units-files  ##列出所有服务开机启动的状态 disable,enable,static
 systemctl  list-dependencies ##列出服务的依赖

 systemctl  set-default multi-user.target  ##设定系统启动级别为多用户模式(无图形)
 systemctl  set-default graphical.target    ##设定系统启动为图形界面

Linux系统的进程管理_第16张图片
Linux系统的进程管理_第17张图片

你可能感兴趣的:(liunx)