Linux下的ps命令
首先了解一下ps命令执行后的各项参数,Android本身用的是Linux内核,所以ps指令参数大同小异。
1.进入Android手机的shell模式
各项参数如下:
USER: 进程的当前用户;
PID : 毫无疑问, process ID的缩写,也就进程号;
PPID :process parent ID,父进程ID
VSIZE : virtual size,进程虚拟地址空间大小;
RSS : 进程正在使用的物理内存的大小;
WCHAN :进程如果处于休眠状态的话,在内核中的地址;
PC : program counter,
NAME: process name,进程的名称
2.Linux下ps参数
F :代表这个程序的旗标 (flag), 4 代表使用者为 super user
S :代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
UID: 程序被该 UID 所拥有
PID:process ID的缩写,也就进程号
PPID :process parent ID,父进程ID
C: CPU 使用的资源百分比
PRI :这个是 Priority (优先执行序) 的缩写
NI :这个是 Nice 值
ADDR: 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"
SZ :使用掉的内存大小
WCHAN: 目前这个程序是否正在运作当中,若为 - 表示正在运作
TTY: 登入者的终端机位置
TIME: 使用掉的 CPU 时间。
CMD:所下达的指令为何
3.利用ps查看进程,实现windows类似于任务管理器作用
ps -ef | grep <option>:option为想要查看的进程
其中-e表示显示所有继承,-f 为把进程的所有信息都显示出来,举例查看我的系统中studio这个进程的信息
如果想关掉这个进程就用: kill -9 29790 29745
其中后两个数字为 进程的pid 和ppid
4.kill -9 和 kill区别
kill和kill -9,两个命令在linux中都有杀死进程的效果,执行kill命令,系统会发送一个SIGTERM信号给对应的程序。当程序接收到该signal信号后,有以下几种情况:
(1)程序立刻停止
(2)当程序释放相应资源后再停止
(3)程序可能仍然继续运行
大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后再停止。但是也有程序可能接收信号后,做一些其他的事情(如果程序正在等待IO,可能就不会立马做出响应,我在使用wkhtmltopdf转pdf的项目中遇到这现象),也就是说,SIGTERM多半是会被阻塞的。
kill -9命令,系统给对应程序发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程