linux每日命令:ps命令

Posted 朱兆筠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux每日命令:ps命令相关的知识,希望对你有一定的参考价值。

ps命令真是我比较常用的命令了,只是也没咋仔细研究过,最大的用处就是写代码的时候,起了多进程,就会占用多个进程,如果程序异常了,进程确没有kill掉,那么再启动程序就会报错

正常起项目

如果进程被占用了,就会发生:

这时候我就会用到ps 去查哪些进程被占用了,然后给它kill 掉

kill 掉无用的进程

 

这就是我平时的用处了,可是ps 仔细研究一下,用处还是很多的

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

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

一.命令格式:

ps [参数]

二.命令功能:

用于显示当前进程 (process) 的状态。

三.命令参数:

参数描述
-A 列出所有的行程
-e 等于“-A”
-a 显示现行终端机下的所有进程,包括其他用户的进程;
-u 以用户为主的进程状态 ;
x 通常与 a 这个参数一起使用,可列出较完整信息。
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-f 做一个更为完整的输出。

 

四. 使用实例

1.显示指定用户信息

ps -u root

2.显示所有进程信息,连带命令行

3.ps 与grep 常用组合用法,查找特定进程

ps -ef|grep uwsgi

 

[root@localhost autoAweme]# ps -ef|grep uwsgi
root      30568    795  0 12月01 ?      00:00:19 /home/hc/project/envs/pgc/bin/uwsgi --ini /home/hc/project/pgc.ini
root      30578  30568  0 12月01 ?      00:00:00 /home/hc/project/envs/pgc/bin/uwsgi --ini /home/hc/project/pgc.ini
root      66069    795  1 12:07 ?        00:04:29 /home/hc/project/envs/autoAweme/bin/uwsgi --ini /home/hc/project/autoAweme.ini
root      66096  66069  0 12:07 ?        00:00:01 /home/hc/project/envs/autoAweme/bin/uwsgi --ini /home/hc/project/autoAweme.ini
root      80022  86053  0 16:06 pts/1    00:00:00 grep --color=auto uwsgi

 

4.将目前属于您自己这次登入的 PID 与相关信息列示出来

ps -l

 

 

说明:

各相关信息的意义:

标志意义
F 代表这个程序的旗标 (flag), 4 代表使用者为 super user
S 代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
UID 程序被该 UID 所拥有
PID 就是这个程序的 ID !
PPID 则是其上级父程序的ID
C CPU 使用的资源百分比
PRI 指进程的执行优先权(Priority的简写),其值越小越早被执行;
NI 这个进程的nice值,其表示进程可被执行的优先级的修正数值。
ADDR 这个是内核函数,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"
SZ 使用掉的内存大小
WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作
TTY 登入者的终端机位置
TIME 使用掉的 CPU 时间。
CMD 所下达的指令为何

 

5.列出目前所有的正在内存当中的程序

ps aux

 

结果

[root@localhost autoAweme]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 125804  4260 ?        Ss   11月30   0:15 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    11月30   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    11月30   0:56 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   11月30   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    11月30   1:01 [migration/0]
root          8  0.0  0.0      0     0 ?        S    11月30   0:00 [rcu_bh]
root          9  0.3  0.0      0     0 ?        S    11月30  19:02 [rcu_sched]

 

说明

标志意义
USER 该 process 属于那个使用者账号的
PID 该 process 的号码
%CPU 该 process 使用掉的 CPU 资源百分比
%MEM 该 process 所占用的物理内存百分比
VSZ 该 process 使用掉的虚拟内存量 (Kbytes)
RSS 该 process 占用的固定的内存量 (Kbytes)
TTY 该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT 该程序目前的状态
START 该 process 被触发启动的时间
TIME 该 process 实际使用 CPU 运作的时间
COMMAND 该程序的实际指令

感谢https://www.cnblogs.com/huchong/p/10065246.html

以上是关于linux每日命令:ps命令的主要内容,如果未能解决你的问题,请参考以下文章

linux每日命令(14):less命令

每日一个 liunx 命令 ( ps )

每日一道shell练习(03)

linux每日命令(18):whereis命令

用于检索子进程输出的python代码(linux ps命令)

linux脚本中的ps等命令问题