Linux 进程管理 笔记
https://www.ibm.com/developerworks/cn/linux/l-linux-process-management/index.html
Linux 进程管理剖析
进程可以是短期的(从命令行执行的一个命令),
也可以是长期的(一种网络服务)
在用户空间,进程是由进程标识符(PID)表示的。
从用户的角度来看,一个 PID 是一个数字值,可惟一标识一个进程。
在用户空间,创建进程可以采用几种方式。
可以执行一个程序(这会导致新进程的创建),
也可以在程序内,调用一个 fork 或 exec 系统调用。
fork 调用会导致创建一个子进程,
而 exec 调用则会用新程序代替当前进程上下文。
===================================
https://linux.cn/article-5557-1.html
12个进程管理命令介绍
查看所有运行中的进程
查看进程消耗资源
定位个别进程并且对其执行指定操作
改变进程的优先级
杀死指定进程
限制进程可用的系统资源等
1. ps
'ps'是Linux 中最基础的浏览系统中的进程的命令。
能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等。
ps -o pid,ppid,comm
ps -a - 列出所有运行中/激活进程
ps -ef |grep - 列出需要进程
ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等
2. pstree
linux中,每一个进程都是由其父进程创建的。
此命令以可视化方式显示进程,通过显示进程的树状图来展示进程间关系。
如果指定了pid了,那么树的根是该pid,不然将会是init(pid: 1)。
3. top
‘top’是一个更加有用的命令,可以监视系统中不同的进程所使用的资源。
它提供实时的系统状态信息。显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory等。
可以使用这些显示指示出资源使用量。
4. htop
htop与top很类似,但是htop是交互式的文本模式的进程查看器。
它通过文字图形化地显示每一个进程的CPU和内存使用量、swap使用量。
使用上下光标键选择进程,F7和F8改变优先级,F9杀死进程。
Htop不是系统默认安装的,所以需要额外安装。
5. nice
通过nice命令的帮助,用户可以设置和改变进程的优先级。
提高一个进程的优先级,内核会分配更多CPU时间片给这个进程。
默认情况下,进程以0的优先级启动。
进程优先级可以通过top命令显示的NI(nice value)列查看。
nice <优先值> <进程名> - 通过给定的优先值启动一个程序
6. renice
renice命令类似nice命令。使用这个命令可以改变正在运行的进程优先值。
注意,用户只能改变属于他们自己的进程的优先值。
renice -n -p - 改变指定进程的优先值
renice -u -g - 通过指定用户和组来改变进程优先值
7. kill
这个命令用于发送信号来结束进程。
如果一个进程没有响应杀死命令,这也许就需要强制杀死,使用-9参数来执行。
注意,使用强制杀死的时候一定要小心,因为进程没有时机清理现场,也许写入文件没有完成。
如果我们不知道进程PID或者打算用名字杀死进程时候,killall就能派上用场。
kill <pid>
kill -9 <pid>
killall -9 - 杀死所有拥有同样名字的进程
信号可以通过 kill 传递给进程,信号值以下三个比较重要。
-1 重新加载 (SIGHUP)
-9 立刻删除 (SIGKILL)
-15 正常终止(SIGTERM)
如果你使用kill,你需要知道进程ID号。
pkill是类似的命令,但使用模式匹配,如进程名,进程拥有者等。
pkill <进程名>
8. ulimit
该命令用于控制系统资源在shell和进程上的分配量。
对于系统管理员是最有用的,可以管理重度使用和存在性能问题的系统。
限制资源大小可以确保重要进程持续运行,其他进程不会占用过多资源。
ulimit -a - 显示当前用户关联的资源限制
-f - 最大文件尺寸大小
-v - 最大虚拟内存大小(KB)
-n - 增加最大文件描述符数量
-H : 改变和报告硬限制
-S : 改变和报告软限制
9. w
w 提供当前登录的用户及其正在执行的进程的信息。
显示信息头包含信息,如当前时间、系统运行时长、登录用户总数、过去的1,5,15分钟内的负载均
衡数。
基于这些用户信息,用户在终止不属于他们的进程时要小心。
who是类似命令,提供当前登录用户列表、系统启动时间、运行级别等。
whoami 命令输出当前用户ID
10. pgrep
pgrep的意思是"进程号全局正则匹配输出"。
该命令扫描当前运行进程,然后按照命令匹配条件列出匹配结果到标准输出。
对于通过名字检索进程号是很有用。
pgrep -u mint sh
这个命令将会显示用户为‘mint’和进程名为‘sh’的进程ID。
11. fg , bg
有时,命令需要很长的时间才能执行完成。
对于这种情况,我们使用‘bg’命令可以将任务放在后台执行,而用‘fg’可以调到前台来使用。
我们可以通过‘&’在后台启动一个程序:
find . -name *iso > /tmp/res.txt &
一个正在运行的程序也可以通过“CTRL+Z”和“bg”命令组合放到后台运行。
find . -name *iso > /tmp/res.txt & - 启动一个程序
ctrl+z - 挂起当前执行程序
bg - 将程序放到后台运行
我们可以使用‘jobs’命令列出所有后台进程。
jobs
使用‘fg’命令可以将后台程序调到前台执行。
fg %进程id
12. ipcs
ipcs命令报告进程间通信设施状态。(共享内存,信号量和消息队列)
用-p参数联合-m、-s或-q使用,可以获得相关的进程间通信的进程ID。
ipcs -p -m
vmstat不算是管理,但是可以使用vmstat查看进程的上下文切换
free:查看内存使用状况
https://linoxide.com/how-tos/linux-ps-command-examples/
=======================================
https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/05_process_manage.html
Docs » Linux基础 » 5. 进程管理工具
=====================================
http://www.ha97.com/1036.html
Linux 进程管理详解
=========================
Linux 进程管理 笔记的更多相关文章
- Linux进程管理子系统分析【转】
本文转载自:http://blog.csdn.net/coding__madman/article/details/51298732 Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码 ...
- 12个Linux进程管理命令介绍(转)
12个Linux进程管理命令介绍 [日期:2015-06-02] 来源:Linux中国 作者:Linux [字体:大 中 小] 执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的 ...
- Linux进程管理知识整理
Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) ...
- Linux性能及调优指南(翻译)之Linux进程管理
本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...
- Linux进程管理专题
Linux进程管理 (1)进程的诞生介绍了如何表示进程?进程的生命周期.进程的创建等等? Linux支持多种调度器(deadline/realtime/cfs/idle),其中CFS调度器最常见.Li ...
- [转帖]十二 个经典 Linux 进程管理命令介绍
https://www.cnblogs.com/swordxia/p/4550825.html 接了 http referer 头 没法显示图片 可以去原始blog 里面去查看. 随笔- 109 ...
- Linux进程管理 (1)进程的诞生
专题:Linux进程管理专题 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 L ...
- Linux进程管理 (2)CFS调度器
关键词: 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 Linux进程管理 ( ...
- Linux进程管理 (7)实时调度
关键词:RT.preempt_count.RT patch. 除了CFS调度器之外,还包括重要的实时调度器,有两种RR和FIFO调度策略.本章只是一个简单的介绍. 更详细的介绍参考<Linux进 ...
随机推荐
- flask下载zip文件报错TypeError
报错内容:TypeError: make_conditional() got an unexpected keyword argument 'accept_ranges' 报错行自己代码如下: dir ...
- JavaScrip(三)JavaScrip变量高级操作(字符串,数组,日期)
一:字符串 charAt() 返回指定位置的字符 indexof() 返回指定字符串首次出现的位置 replace() 替换指定的字符 concat() 连接两个或多个字符串 substr(start ...
- mac mamp环境 和linux下 安装redis 和可视化工具 Redis Desktop Manager
mac下安装 第一步:安装redis 1. brew install redis 2.启动服务/usr/local/opt/redis/bin/redis-server 3.配置redis密码访问 编 ...
- VSTO杂项拾零(持续更新中……)
环境:win 7+visual basic 2008 侧重:VSTO 界面:sheetbook工作簿 1.创建一个过程并调用(2017.6.3) Public Class Sheet1 ...
- Java垃圾回收理解
gc是垃圾回收,Java的垃圾回收分为年轻代回收和老年代回收,其中年轻代回收速度快,频率高,因为Java对象大多具有朝生夕灭的特性,Java对象都是new出来的,当new出很多对象的时候,年轻代很容易 ...
- `define、parameter、localparam三者的区别(转)
`define: 可以跨模块的定义,写在模块名称上面,在整个设计工程都有效.一旦‘define指令被编译,其在整个编译过程中都有效.例如,通过另一个文件中的`define指令,定义的常量可以被其他文件 ...
- 解决The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.
SpringMVC中当在浏览器中输入对应的MappingUrl时,报The resource identified by this request is only capable of generat ...
- scrapy--分布式爬虫
14.3 使用scrapy-redis进行分布式爬取了解了scrapy-redis的原理后,我们学习使用scrapy + scrapyredis进行分布式爬取.14.3.1 搭建环境首先搭建scrap ...
- Python 属性
class Person: def __init__(self, name, gender, birth): self.name = name self.gender = gender self.bi ...
- JAVA将单词首字母大写方法
public class FirstLetterUppercase { public static void main(String[] args){ System.out.println(new F ...