为了管理这些进程,用户应该可以:linux
●查看全部运行中的进程shell
●查看进程消耗资源负载均衡
●定位个别进程而且对其执行指定操做性能
●改变进程的优先级教程
●杀死指定进程队列
●限制进程可用的系统资源等进程
Linux提供了许多命令来让用户来高效掌控上述的操做。接下来,一个一个的来说解下。ip
1.ps内存
'ps'是Linux 中最基础的浏览系统中的进程的命令。能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等。下述选项能够获得更多有用的消息。资源
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)列查看。
进程优先级值的范围从-20到19。值越低,优先级越高。
nice <优先值> <进程名> - 经过给定的优先值启动一个程序
上述命令例子中,能够看到‘top’命令得到了-3的优先值。
6.renice
renice命令相似nice命令。使用这个命令能够改变正在运行的进程优先值。注意,用户只能改变属于他们本身的进程的优先值。
renice -n -p - 改变指定进程的优先值
初始优先值为0的3806号进程优先值已经变成了4。
renice -u -g - 经过指定用户和组来改变进程优先值
上述例子中,用户为‘mint’的全部进程优先值变为‘-3’。
7.kill
这个命令用于发送信号来结束进程。若是一个进程没有响应杀死命令,这也许就须要强制杀死,使用-9参数来执行。注意,使用强制杀死的时候必定要当心,由于进程没有时机清理现场,也许写入文件没有完成。若是咱们不知道进程PID或者打算用名字杀死进程时候,killall就能派上用场。
kill <pid>
kill -9 <pid>
killall -9 - 杀死全部拥有一样名字的进程
若是你使用kill,你须要知道进程ID号。pkill是相似的命令,但使用模式匹配,如进程名,进程拥有者等。
pkill <进程名>
8.ulimit
该命令用于控制系统资源在shell和进程上的分配量。对于系统管理员是最有用的,能够管理重度使用和存在性能问题的系统。限制资源大小能够确保重要进程持续运行,其余进程不会占用过多资源。
ulimit -a - 显示当前用户关联的资源限制
-f :最大文件尺寸大小
-v :最大虚拟内存大小(KB)
-n :增长最大文件描述符数量
-H :改变和报告硬限制
-S :改变和报告软限制
浏览ulimit man页面获取更多选项。
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
下面屏幕截图列出了最近访问了共享内存段的进程的建立者的ID和进程ID。
总结
总之 ,这些命令能够帮助管理员修复问题和改善性能。一样做为一名普通用户也须要解决进程出现的问题。因此,熟悉如此繁多的命令,从能有效管理进程是行之有效。
免费提供最新Linux技术教程书籍,为开源技术爱好者努力作得更多更好:http://www.linuxprobe.com/