linux进程管理
1.进程的组成
一个进程包含内核中的一部分地址空间和一系列数据结构。其中地址空间是内核标记的一部分内存以供进程使用,而数据结构则用来纪录每个进程的具体信息。
最主要的进程信息包括:
- 进程的地址空间图
- 进程当前的状态( sleeping、stopped、runnable 等)
- 进程的执行优先级
- 进程调用的资源信息
- 进程打开的文件和网络端口信息
- 进程的信号掩码(指明哪种信号被屏蔽)
- 进程的属主
PID:进程ID
每一个进程都会从内核获取一个唯一的ID值。绝大多数用来操做京城的命令和系统调用,都需要PID
指定操作的进程对象。
PPID:父进程ID
在unix和linux系统中,一个已经存在的进程必须克隆它自身来创建一个新的进程。当新的进程克隆后,最初的进程便作为父进程存在。
UID&EUID:真实用户ID和有效用户ID
一个进程的 UID 是其创建者的身份标志(也是对其父进程 UID 的复制)。通常只有进程的创建者和超级用户才有操作该进程的权限。
Niceness
一个进程的计划优先级决定了它能获取到的 CPU 时间。内核有一个动态的算法来计算优先级,同时也会关注一个 Niceness 值,来决定程序运行的优先顺序。
二.信号
信号属于进程级别的中断请求。它们可以作为进程间通信的手段,或者由终端发送以杀死,中断,挂起某个进程。
三。kill命令
kill命令常用来终止某个进程,它可以向进程传递信号(默认为TERM)
不带任何数字(信号)选项的kill命令1并不能保证进程被杀死,因为kill命令默认发送term信号,而term是可以被捕获,屏蔽或忽略的。
可以使用kill -9 pid命令强制杀死进程(9代表KILL信号,不可被捕获,屏蔽或者忽略)。
KILL命令需要指定进程的PID号
pgrep 命令可以通过程序名称(或其他属性如 UID)筛选进程号,pkill 命令可以直接发送指定信号给筛选结果。
如 sudo pkill -u ben
该命令将发送 TERM 信号给所有属于用户 ben 的进程。
killall 命令可以通过程序名称杀死指定进程的所有实例。如:
sudo killall apache2
进程管理命令
pstree
通过树形结构显示进程关系
yum install -y psmisc -y 安装命令
ps
查看进程状态--当前运行状态;(这一刻)
PID进程ID
TTY启动该进程的终端是谁 pts
TIME进程累计再CPU上运行的时长
CMD启动该进程命令程序
ps的常用组合:
ps -aux
USER 进程所属用户
PID
%CPU
%MEM
VSZ virtual memory size 虚拟内存大小;进程自己再内存中真是占用的线性地址空间大小
RSS 常驻内空间(不可以进行内存交换 -- swap)
TTY
STAT
top命令
显示进程信息 top
显示完整命令 top -c
以批处理模式显示程序信息 top -b
以累积模式显示程序信息 top -s
设置信息更新时间 top -d 3
显示指定进程信息 top -p 139 //显示进程号为139的进程信息,cpu
,内存占用率
显示更新十次后退出 top -n 10
使用者将不能利用交谈式指令来对行程下命令 top -s
原文地址:https://www.cnblogs.com/qhlove/p/11641912.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring事务是如何应用到你的业务场景中的?
- MySQL8.0大表秒加字段,是真的吗?
- 大数据简介,技术体系分类整理
- 图像处理笔记(5)---- OpenCV 用滑动条做调色板
- 牛X | 一款比传统数据库快100-1000倍的数据库,认识一下
- SpringBoot统一参数校验
- SpringBoot多邮件源发送邮件
- 一个基础的SpringBoot项目该包含哪些
- leetcode树之平衡二叉树
- 3分钟短文:说说Laravel页面会话之间的数据保存Session用法
- Skywalking Php注册不上问题排查
- 第4章代码-图形几何变换
- 第5章代码-三维观察
- 我的2020 九月iOS面试秘籍,为你的跳槽保驾护航
- SAP Spartacus layout设计原理