进程管理

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

R(Running):正在运行
S(Sleep):程序最小化状态目前正在睡眠状态,但可唤醒(signal)
D:不可被唤醒的睡眠状态,通常进程可能在等待I/O情况。
T:停止状态(stop),可能是在工作控制(背景暂停)或除错(traced)状态。
Z(Zomblie):僵尸状态,程序已经终止但却无法被移除

3.查看进程:

  命令:gnome-system-monitor

进程管理
4.进程查看命令:

   ps -A   ##查看所有进程
   ps -a   ##查看当前程序中运行的进程,但不包含环境信息
   ps a    ##查看当前程序中运行的进程
   ps -u   ##查看进程用户信息
   ps f    ##查看进程的父子关系
   ps e    ##显示进程的详细信息
  常用组合:
   ps aux  ##显示系统中所有进程并显示进程用户
   ps ef   ##显示进程详细信息并显示进程父子关系
   ps ax   ##显示当前系统的所有进程
   pstree  ##显示当前系统进程树
  显示进程指定信息:
   ps -o   xxx   ##显示进程的指定信息
           comm  ##进程名称
           user  ##进程所有人
	   group ##进程所有组
           %cpu  ##进程cpu使用率
           %mem  ##进程内存使用率
           pid   ##进程id
           nice  ##进程优先级
   进程排序:
   ps ax --sort=+%cpu|-%cpu   ##对使用cpu的进程频率正序/倒序排列(--sort为现实排序)
               =+%mem|-%mem   ##对使用内存的进程频率正序/倒序排列
  实验方法:例:将使用内存率最高的五个进程id列出。
  [[email protected] Desktop]# ps ax --sort=-%mem -o comm,pid,%mem|head -n 6

进程管理
ps -a与ps a的区别:
进程管理
由此可看出ps -a 不包含当前进程所运行的环境。
ps aux:部分截图,进程数量较多
进程管理
pstree:进程树部分截图
进程管理
可看出所有进程都是在systemd基础下的,所以其实所有进程的父进程。假设现在有一个进程,它衍生了一个依赖进程,当这个父进程被强制结束时,那个衍生进程就变成了孤儿进程,由systemd接收。
5.进程的优先级

1.进程优先级范围
-20~19    ##越小优先级越高
2.优先级查看
ps ax -o pid,nice,comm

进程管理

3.指定某个进程用某个优先级开启
nice -n 优先级数字 进程pid
nice -n -5 vim    ##开启vim进程以-5的优先级开启

进程管理

4.改变进程优先级(进程已开启的情况下)
renice -n 优先级数字 进程pid
renice -n -5 1806  ##将1806进程的优先级改为-5

进程管理
5.环境中进程前后台调用

jobs     ##查看被打入环境后台的程序
ctrl+z   ##把占用终端的进程打入后台
fg jobsnum      ##把后台进程调回前台(占用终端)
bg jobsnum      ##把后台暂停的进程运行(在该进程界面上仍可使用)
comm &          ##让命令直接在后台进行

6.进程信号
常用进程信号:
1 ##进程重新加载配置
2 ##删除进程在内存的数据
3 ##删除鼠标在内存的数据
9 ##强行结束单个进程(不会被阻塞)
15 ##正常关闭进程,可能会被阻塞
18 ##运行暂停的进程
19 ##暂停某个进程
20 ##把进程打入后台,可以被阻塞
man 7 signal ##查看信号详细进程
kill -信号 进程id ##结束进程ip
killal -信号 进程名字 ##结束某一类进程
pkill -u student -信号l ##结束由student建立的进程
信号9 与信号15的区别:
进程管理
暂停进程:kill -19 11403
进程管理
计数器不能正常记时,暂停了。
7.top命令

       1.  ##显示cpu每个核的负载
       s   ##调整刷新频率
       c   ##cpu负载排序
       m   ##内存使用量排序
       h   ##查看帮助
       u   ##查看指定用户进程
       k   ##对指定进程发起信号
       q   ##退出
实现方法:
    在shell 中输入top,自动弹出页面。输入s,则在输入调整的刷新时间。输入c,会根据CPU负载排序。在top页面中直接进行操作。输入k,可以通过ps查看现在运行的进程,输入pid,决定要对该进程做什么操作,例如信号9,强制结束该进程。

进程管理
按cpu负载排序
进程管理
指定用户进程:
进程管理