ps进程命令

1. 概述

  在adb shell终端,输入 ps,可查看Android当前所有的进程状态。ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程及状态。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

  ps命令对于分析系统异常情况时都是必备的技能,需要通过这个简单命令来查看系统真实的状态。

Linux上进程的5种状态

  • 运行(正在运行或在运行队列中等待)
  • 中断(休眠中,受阻,在等待某个条件的形成或接受到信号)
  • 不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)
  • 僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)
  • 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

ps标识对应的5种状态码

  • R 运行 runnable (on run queue)
  • S 中断 sleeping
  • D 不可中断 uninterruptible sleep (usually IO)
  • Z 僵死 a defunct (”zombie”) process
  • T 停止 traced or stopped

2. ps的使用及示例说明

用法:ps [ 参数 ]

命令参数

ps命令的参数非常多,这里我们简单介绍几个常用的参数,具体的大家可以自行深入了解

  • -t 显示进程里的所有子线程
  • -c 显示进程耗费的CPU时间
  • -p 显示进程优先级、nice值、调度策略
  • -P 显示进程,通常是bg(后台进程)或fg(前台进程)
  • -x 显示进程耗费的用户时间和系统时间,格式:(u:0, s:0),单位:秒(s)。

上面的参数可根据需要自由组合

查看所有普通应用程序,由于目前android是单用户的,所以用户普通进程的user都是以u0开头的,google有意把android发展成支持多用户的,以后应该会有u1, u2_等等的用户名,另外普通app的uid是从10000开始:
ps | grep u0;
在这里插入图片描述

输出结果含义

简单举个例子,再命令窗口输入如下命令(3835是某个进程的PID):
ps -P -p -x -c | grep -E "NAME|3835 "

输出结果:
在这里插入图片描述
结果分析:

字段含义
USER进程的当前用户system
PID进程ID3835
PPID父进程ID1
VSIZE进程虚拟地址空间大小1016
RSS进程正在使用物理内存大小184
CPUCPU消耗0
PRIO进程优化级20
NICENice值0
RTPRI实时进程优先级0
SCHED调度策略SCHED_OTHER(默认策略)
PCY进程状态-
WCHAN内核地址ffffffff
PC当前程序指针f72e1774
-休眠状态S
NAME进程名/system/bin/servicemanager
-用户态和内核态时间(单位s)u:0, s:2

注: WCHAN值为0代表进程处于运行态;否则代表内核地址(休眠态)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ʚ兔子的先森ɞ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值