ps 命令

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。

下面列几个常用的选项,其他的请man或者百度

ps最常用的选项是aux 和 -ef 


上述欄位解釋:

USER 进程的属主;

PID   进程的ID;

PPID    父进程;

%CPU   进程占用的CPU百分比;

%MEM  占用内存的百分比;

VSZ     該进程使用的虚拟內存量(KB);

RSS     該進程占用的固定內存量(KB)(驻留中页的数量);

TTY     該進程在那個終端上運行(登陸者的終端位置),若與終端無關,則顯示(?)。若為pts/0等,則表示由網絡連接主機進程

STAT   该进程的状态

START   該進程被觸發启动时间;

TIME      該进程實際使用CPU運行的时间;

COMMAND   命令的名称和参数;


STAT狀態位常見的狀態字符

D 无法中断的休眠状态(通常 IO 的进程);

R 正在运行可中在队列中可过行的;

S 处于休眠状态;

T 停止或被追踪;

W 进入内存交换  (从内核2.6开始无效);

X 死掉的进程   (基本很少見);

Z 僵尸进程;

< 优先级高的进程

N 优先级较低的进程

L 有些页被锁进内存;

s 进程的领导者(在它之下有子进程);

l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);

+ 位于后台的进程组;


ps -ef 类似aux ,只是输出的选项有点不同,多了个C ,表示CPU时间。


ps -Al 参数可以显示更加详细,



相關信息的意義:


F  進程的標誌(flag),4表示用戶為超級用戶


S  進程的狀態(stat),同STAT意义


PID   進程的ID


C   CPU使用資源的百分比


PRI   priority(優先級)的縮寫,

NI     Nice值,


ADDR  核心功能,指出該進程在內存的那一部分,如果是運行的進程,一般都是“-”


SZ     用掉的內存的大小


WCHAN   當前進程是否正在運行,若為“-”表示正在運行,若该进程在睡眠,则显示睡眠中的系统函数名


TTY     登陸者的終端位置


TIME   用掉的CPU的時間


CMD    所執行的指令


上面的 aux  -ef   -Al都是显示所有的进程,只是显示列项有些不同,一般配合grep使用


ps axjf 可以类似进程树显示进程间的关系







### ps命令在麒麟系统中的使用方法 麒麟系统作为基于Linux内核的操作系统,支持标准的Linux命令集,其中`ps`命令用于显示当前系统中运行的进程信息。它会生成一个静态列表,反映的是执行命令时系统运行进程的快照。如果需要持续更新的实时进程列表,可以使用`top`命令或系统监控工具[^1]。 #### 基本使用 - **查看当前终端运行的进程** 在终端中直接输入以下命令,可以查看当前终端会话中运行的进程: ```bash ps ``` - **查看所有系统进程** 使用`-a`参数可以列出系统中所有用户运行的进程,不包括没有控制终端的进程: ```bash ps -a ``` - **查看所有进程(包括无控制终端的进程)** 使用`-ax`参数可以查看系统中所有运行的进程: ```bash ps -ax ``` - **查看所有进程并显示完整信息** 使用`-ef`参数可以查看所有进程的详细信息,包括进程的用户、PID(进程标识符)、PPID(父进程标识符)、CPU和内存使用情况等: ```bash ps -ef ``` #### 高级用法 - **根据终端查看进程** 在图形界面卡死的情况下,可以切换到命令行模式(如Ctrl+Alt+F1),然后使用以下命令查看指定终端(如tty7)上的进程: ```bash ps -t tty7 ``` 然后找到该终端上的进程PID号,使用`kill`命令终止进程以恢复界面[^2]。 - **配合`grep`查找特定进程** 如果需要查找某个特定的进程,可以结合`grep`命令进行过滤。例如,查找包含"xDisplayServer"关键字的进程: ```bash ps -ef | grep xDisplayServer ``` - **统计特定进程的数量** 可以使用`ps`配合`grep`和`wc`命令统计某个进程的数量。例如,统计"xDisplayServer"进程的数量: ```bash ps -ef | grep xDisplayServer | grep -v grep | wc -l ``` 其中,`grep -v grep`的作用是排除掉`grep`自身产生的进程条目[^5]。 - **获取进程详细信息并解析** 在程序开发中,如果使用`QProcess`执行`ps`命令并获取结果,需要注意不能直接使用管道符号“|”,否则可能导致无输出。此时可以改用`-c`参数传递完整的命令字符串,例如: ```cpp QProcess p; QStringList options; options << "-c" << "ps -ef | grep xDisplayServer | grep -v grep | wc -l"; p.start("bash", options); p.waitForFinished(); QString output = QString(p.readAllStandardOutput()); ``` #### 注意事项 - `ps`命令生成的是静态快照,不能实时更新进程信息。若需要实时监控系统进程,建议使用`top`命令。 - 在麒麟系统中,如果使用`killall`命令尝试模糊匹配并终止进程失败,可能提示“未找到该进程”,此时应使用`ps`命令查找准确的PID并使用`kill`命令终止进程[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值