Liunx系统的进程管理

进程的理解
程序 (program) 是放置在储存媒体中 ( 如硬盘、光盘、软盘、磁带等 ),为实体文件的型态存在。

进程: 程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码 (PID), 可以说,进程就是一个正在运行中的程序。

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

在图形中可以执行下面的命令,去查看进程:

gnome-system-monitor

或鼠标点击左上角的Applications,然后查看里面的System Tools选项,点击里面的System Monitor
在这里插入图片描述
然后就可以打开进程管理器,界面如下:
在这里插入图片描述
用命令查看进程
命令: ps   进程查看工具
常加的参数:

  • ps -A   所有进程
  • ps -a   在环境中的所有进程,不包含环境信息
  • ps -u   显示进程用户信息
  • ps a   显示当前环境中运行的进程,包含环境信息
  • ps x   列出系统中所有运行包含tty输出设备
  • ps f   显示进程的父子关系
  • ps e   显示进程的详细信息(系统资源的调用)
  • ps l   较长、较详细的将该 PID 的的信息列出

ps常用的组合参数:

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

显示进程指定信息:
命令: ps -o xxx   显示进程的指定信息
常用的信息有如下:

  • comm   进程名称
  • user   进程所有人
  • group   进程所有组
  • %cpu   进程cpu使用率
  • %mem   进程内存使用率
  • pid   进程id
  • nice   进程优先级

进程排序:
ps ax --sort=xxx -o xxx (升序排列)
ps ax --sort= - xxx -o xxx (降序排列)
" = "后面跟要排序的信息,-o 后跟要显示的信息

搜索指定进程
ps -aux | grep 进程关键字
这个命令用于搜索包含关键字的进程

示例操作:
在这里插入图片描述
根据降序排列进程并查看指定信息:
在这里插入图片描述
查看进程的指定信息:
在这里插入图片描述
可以看到进程的stat信息中有多个字符,它们的含义分别如下:

  • ’ S ’   进程的状态
  • ’ l ’   内存中有锁定空间
  • ’ N ’   优先级低
  • ’ < ’   优先级高
  • ’ + ’   前台运行
  • ’ s ’   顶级进程
进程的优先级
优先级的范围

进程优先级的范围是: -20~19

优先级的查看
进程的信息中有一项nice就是指进程的优先级。
可以用下面的命令查看进程的优先级:

watch -n 1 ps -a -o comm,stat,pid,nice

在这里插入图片描述
设定进程的优先级
(1). nice -n 优先级 命令
效果:使用指定的优先级执行该命令

示例:
在这里插入图片描述

(2). renice -n 优先级 pid
效果:将指定的pid进程重新设定新的优先级

示例:
在这里插入图片描述
重新设定优先级:
在这里插入图片描述


如何控制shell中进程的前后台调用
工作管理:工作管理是用在 bash 环境下的 ,当我们登陆系统取得 bash shell 之后 ,在单一终端机接口下同时进行多个工作的行为管理。举例来说 , 我们在登陆 bash 后, 想要一边进行数据搜寻、一边打开浏览器 , 还可以一边进行 vim 程序撰写 。 这个就牵扯到工作的前后台管理。

工作管理的常用命令:

  • 命令 &   使job 在后台运行
  • ctrl+Z   把已经打开的进程打入后台 , 并且不运行
  • fg   将后台的 job 调回前台
  • bg   后台不运行的进程运行起来
  • jobs   查看当前 bash 的 job
  • jobs -l   查看当前 bash 的 job,并显示该 job 的状态与 PID

操作示例:
在这里插入图片描述


进程信号
常用的信号等级
  • 1   在程序不重启的情况下重新加载配置
  • 2   清除指定程序在内存中的数据
  • 3   清除鼠标在内存中的数据
  • 9   强行结束某个进程,不会被阻塞
  • 15   正常关闭某个进程,可能会被阻塞
  • 18   继续运行暂停的进程
  • 19   暂停指定进程,不会被阻塞
  • 20   暂停指定进程,会被阻塞

可以用下面命令查看信号的详细信息:

man 7 signal

发起信号的方式
kill -信号 pid
killall -信号 进程名称
pkill -u username -信号   结束某个用户的所有进程

操作示例:
在这里插入图片描述
用killall结束指定名称的所有进程:
在这里插入图片描述


进程的动态监控
命令 top 可以动态监控进程,查看进程信息
执行top命令之后进入动态监控进程界面,如下:

在这里插入图片描述
在该界面中还可以按以下按键执行相应的操作:
s : 修改进程刷新间隔时间
m : 根据内存占有率进行排序
c : 根据 cpu 占有率进行排序
u : 后面输入用户名,用来查看该用户发起的所有进程
k : 后面跟要作用的进程 pid, 和发起的信号 (eg:9,15,20) 用来给某个进程发起一信号
q : 退出进程查看界面
h : 显示 top 命令的帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值