执行中的程序在称作进程。当程序以可执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源、内存、安全属性和与之相关的状态。可以有多个进程关联到同一个程序,并同时执行不会互相干扰。操作系统会有效地管理和追踪所有运行着的进程。
为了管理这些进程,用户应该能够:
查看所有运行中的进程
查看进程消耗资源
定位个别进程并且对其执行指定操作
改变进程的优先级
杀死指定进程
限制进程可用的系统资源等
Linux提供了许多命令来让用户来高效掌控上述的操作。接下来,一个一个的来讲解下。
1. ps'ps'是Linux 中最基础的浏览系统中的进程的命令。能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等。下述选项可以得到更多有用的消息。
ps -a -列出所有运行中/激活进程
ps -ef |grep -列出需要进程
ps -aux -显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID,%CPU,%MEM等
2. pstreelinux中,每一个进程都是由其父进程创建的。此命令以可视化方式显示进程,通过显示进程的树状图来展示进程间关系。如果指定了pid了,那么树的根是该pid,不然将会是init(pid: 1)。
3. top‘top’是一个更加有用的命令,可以监视系统中不同的进程所使用的资源。它提供实时的系统状态信息。显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory等。可以使用这些显示指示出资源使用量。
4. htophtop与top很类似,但是htop是交互式的文本模式的进程查看器。它通过文字图形化地显示每一个进程的CPU和内存使用量、swap使用量。使用上下光标键选择进程,F7和F8改变优先级,F9杀死进程。Htop不是系统默认安装的,所以需要额外安装。
5. nice通过nice命令的帮助,用户可以设置和改变进程的优先级。提高一个进程的优先级,内核会分配更多CPU时间片给这个进程。默认情况下,进程以0的优先级启动。进程优先级可以通过top命令显示的NI(nice value)列查看。
进程优先级值的范围从-20到19。值越低,优先级越高。
nice <优先值><进程名>-通过给定的优先值启动一个程序
上述命令例子中,可以看到‘top’命令获得了-3的优先值。
6. renicerenice命令类似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