Linux PS命令(process status)详解

ps(process status)命令被用来提供关于当前正在运行的进程的信息,包括它们的进程标识号(PID)。

进程(也称为任务)是程序的执行(即运行)实例。系统为每个进程分配唯一的PID。

ps的基本语法是:

ps [options]

当使用ps且没有任何选项时,它将发送到标准输出(默认情况下是显示监视器),以显示有关系统上当前至少两个进程的四项信息:shell和ps。Shell是一种程序,它在类Unix的操作系统中提供传统的纯文本用户界面,用于发出命令并与系统交互,在Linux上默认为bash。ps本身是一个过程,一旦显示其输出,它便死亡(即终止)。

这四个项目分别标记为PID,TTY,TIME和CMD。TIME是进程已运行的CPU(central processing unit)时间,以分钟和秒为单位。CMD是启动该进程的命令的名称。

TTY(现在是terminal type但最初是teletype)是用户登录的控制台终端(即显示器和键盘的组合)的名称,也可以使用tty命令找到它。此信息通常仅在多用户网络上有用。

使用ps获取有关系统上当前进程的更完整信息的常见且便捷的方法是使用以下命令:

ps -aux | less

-a选项告诉ps列表中的所有用户的进程,而不仅仅是那些当前用户上的。

-u选项告诉ps提供有关每个进程的详细信息。

-x选项表示添加到列表中的进程不具有控制终端,如守护进程,这是被期间启动程序启动(即计算机启动),并在后台运行悄悄直到它们由特定的事件或条件激活。

ps -aux提供的有关每个进程的信息包括该进程的用户,PID,该进程使用的CPU的百分比,该进程使用的内存的百分比,VSZ(以千字节为单位的虚拟大小),RSS(实际内存大小或以1024字节为单位的常驻集大小),STAT(进程状态码),进程的开始时间,进程处于活动状态的时间长度以及启动进程的命令。进程状态代码包括D,不间断的睡眠;N,低优先级;R,可运行(在运行队列中);S,睡觉;T,跟踪或停止;Z,已失效(僵尸)。

与大多数命令相反,ps选项前面的连字符是可选的,不是必需的。因此,可以(有时)使用以下命令代替上述命令:

ps aux | less

用于查看系统上运行的所有进程的另一组选项是:

ps -ef | less

-e选项生成的有关当前正在运行的每个进程的信息列表。在-f选项生成包含的较少信息的项目超过了每个进程的列表-l选项。

ps -efl

-l选项生成一个列表,并且与-e和-f选项一起使用时,将创建一个包含15列的表。

ps -ef显示的列中,UID包含拥有该进程的帐户的用户名(通常是启动该进程的同一用户),而STIME显示该进程的启动时间,或者如果启动时间超过24小时,则显示启动日期。

ps最常用于获取故障过程的PID,以使用kill命令终止它。例如,如果发现冻结崩溃的程序的PID为1125,则通常可以使用以下命令终止该过程:

kill 1125

然后可以使用ps -ef或ps -efl确认该进程确实已经停止。如果还没有,那么应该使用更强大的-9选项,即:

kill -9 1125

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/linux/2773.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注