Linux:进程管理常用命令

2019-09-11 17:43发布

1.探查进程

常用命令:

ps -ef :查看所有进程。-e参数显示所有运行在系统上的进程;-f参数则扩展了输出。

UID:启动进程的用户;

PID:进程的ID;

PPID:父进程的ID;

C:进程生命周期中的CPU利用率;

STIME:进程启动时的系统时间;

TTY:进程启动时的终端设备;

TIME:运行进程需要的累计CPU时间;

CMD:启动进程的程序名称

shaphicprb13137:~/test2 # ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 Jun13 ?        02:20:01 /usr/lib/systemd/systemd --swi
root          2      0  0 Jun13 ?        00:00:08 [kthreadd]
root          3      2  0 Jun13 ?        01:21:47 [ksoftirqd/0]
root          5      2  0 Jun13 ?        00:00:00 [kworker/0:0H]
root          7      2  0 Jun13 ?        04:12:55 [rcu_sched]
root          8      2  0 Jun13 ?        00:00:00 [rcu_bh]
root          9      2  0 Jun13 ?        00:25:29 [migration/0]
root         10      2  0 Jun13 ?        00:00:20 [watchdog/0]
root         11      2  0 Jun13 ?        00:00:23 [watchdog/1]
root         12      2  0 Jun13 ?        00:25:31 [migration/1]
……
……
……

命令结合grep可以对进程进行筛选。

 

2. 实时检测进程

ps只能看到实时的进程信息,无法看到进程的变化趋势。采用top命令比较适用于这种情况。

如下:

第一行显示了当前时间、系统的运行时间、登陆的用户数以及系统的平均负载。平均负载有3个数值,最近1分钟的、最近5分钟的、最近15分钟的平均负载。

第二行显示了进程的概要信息:有多少进程在运行、休眠、停止或是僵化状态(进程完成了,但是父进程没有响应)。

第三行是CPU的概要信息:top根据进程的属主(用户还是系统)和进程的状态(运行、空闲或等待)将CPU的利用率分成几类输出。

第四行和第五行分别是内存概要信息和交换区概要信息:内存总量,已使用内存,空闲内存。

后面的详细列表则是进程的具体信息,与ps命令类似:

PID:进程ID;

USER:进程属主的名字;

PR:进程优先级;

NI:进程的谦让程度;

VIRT:进程占用的虚拟内存总量;

RES:进程占用的物理内存总量;

SHR:进程和其他进程共享的内存总量;

S:进程的状态,D代表可中断的休眠状态,R代表运行状态,S代表休眠状态,T代表跟中状态或停止状态,Z代表僵化状态;

%CPU:进程使用的CPU时间比例;

%MEM:进程使用的内存占可用内存的比例;

TIME+:进程从启动到目前为止的CPU时间总量;

COMMAND:启动进程的程序名。

top命令默认按照%CPU值对程序排序,可以通过命令调整:f允许选择对输出进行排序的字段;d允许修改轮询时间,默认轮询时间是3秒。

shaphicprb13137:~/test2 # top
top - 17:31:13 up 90 days,  8:37,  1 user,  load average: 5.69, 4.96, 4.87
Tasks: 648 total,   1 running, 647 sleeping,   0 stopped,   0 zombie
%Cpu(s): 11.8 us,  7.8 sy,  0.0 ni, 78.7 id,  0.3 wa,  0.0 hi,  1.0 si,  0.4 st
KiB Mem:  65784500 total, 63475292 used,  2309208 free,  1181356 buffers
KiB Swap:  4192252 total,   259908 used,  3932344 free. 26328900 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S   %CPU  %MEM     TIME+ COMMAND
 19208 ossuser   20   0 2295904  99236  11656 S 33.113 0.151  30819:20 etcd
318117 ossuser   20   0 3799628 2.848g     24 S 32.781 4.540  11070:08 java
 40492 ossuser   20   0 4299472 1.299g  19232 S 17.550 2.071   6947:03 java
 75556 ossuser   20   0  514244 349480  18792 S 12.252 0.531 715:03.73 java
 92047 ossadm    20   0 1793944 294724  13096 S  7.616 0.448   3285:32 java
206716 ossuser   20   0 2328324 1.685g  12412 S  5.960 2.686   2273:09 java
  9241 ossuser   20   0 6896164 907992  18096 S  5.629 1.380   2334:38 java
 83678 ossadm    20   0 2132032 403276  11852 S  4.305 0.613   1997:08 java
336249 ossuser   20   0 1699348 1.125g  12924 S  4.305 1.792   2015:56 java
345407 ossadm    20   0 1516456 216484  11476 S  4.305 0.329   1369:58 java
154294 dbuser    20   0   54212  11708   3064 S  3.974 0.018   1753:38 redis-server
  1710 root      20   0 1307712  46436  18056 S  3.642 0.071   5762:35 messageservice
……
……
……

 

3. 进程终止

kill "进程号"

killall支持通过进程名终止进程,支持名称通配符

如:killall ftp* 会终止所有以ftp开头的进程。

标签: