1. ps 和 jps的 关系
ps
1. 什么进程
程序(例如 二进制文件-binary file)被触发后
执行者的权限 与 属性、程序的代码及所需要的数据都会被加载到内存中
操作系统会给予这个内存单元一个标识符(PID) 可以说进程就是真正运行的程序
当我们执行一个程序时,对于操作系统来讲就是创建了一个进程,在这个过程中,伴随着资源的分配和释放,可以认为进程是一个程序的一次执行过程
2.父进程与子进程
进程 都会由 父进程 以复制(fork)的方式产生一个一模一样的子进程
然后被复制出来的子进程再以 exec 的方式来执行实际还要进行的程序 最终形成一个子进程
3. 进程状态
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
4. ps 是什么 ?
查看当前系统的进程及进程状态 的软件
查询结果为执行命令时刻进程的快照
5. 常用命令
1. ps -ef
功能 : 查看系统所有进程(标准语法)

[root@gaocun sbin]# ps -ef
UID : 执行者
PID : 进程id
PPID : 进程父id
C : CPU使用率,单位百分比
STIME :
TTY : 登入者终端机位置,远程登入为pts/n
TIME : 使用CPU的时间
CMD : 触发该进程的指令(command)
[root@gaocun sbin]# ps -ef | grep 22717
root 22717 1 0 14:03 ? 00:00:06
/home/software/jdk1.8/bin/java
-Dproc_datanode
-Djava.net.preferIPv4Stack=true
-Dhadoop.security.logger=ERROR,RFAS
-Dyarn.log.dir=/home/software/hadoop-3.1.3/logs
-Dyarn.log.file=hadoop-root-datanode-gaocun.log
-Dyarn.home.dir=/home/software/hadoop-3.1.3
-Dyarn.root.logger=INFO,console
-Djava.library.path=/home/software/hadoop-3.1.3/lib/native
-Dhadoop.log.dir=/home/software/hadoop-3.1.3/logs
-Dhadoop.log.file=hadoop-root-datanode-gaocun.log
-Dhadoop.home.dir=/home/software/hadoop-3.1.3 -Dhadoop.id.str=root
-Dhadoop.root.logger=INFO,RFA -Dhadoop.policy.file=hadoop-policy.xml
org.apache.hadoop.hdfs.server.datanode.DataNode
2. ps aux
功能 : 查看系统所有进程(BSD语法)

[root@gaocun sbin]# ps aux
USER : 触发该进程的用户
PID :
%CPU : 该进程占用CPU资源的百分比
%MEM : 该进程占用物理内存的百分比
VSZ : 该进程使用掉虚拟内存量(Kbytes)
RSS : 该进程占用固定内存量(Kbytes)
TTY : 该进程在哪个终端机上面运行,如果为pts/n则为由网络连接进主机的进程
STAT : 该进程的状态
START : 该进程被触发的时间
TIME : 该进程使用使用CPU的时间
COMMAND : 该进程的触发命令
[root@gaocun sbin]# ps aux | grep 22717
root 22717 0.1 6.4 2802408 249324 ? Sl 14:03 0:09
/home/software/jdk1.8/bin/java
-Dproc_datanode
-Djava.net.preferIPv4Stack=true
-Dhadoop.security.logger=ERROR,RFAS
-Dyarn.log.dir=/home/software/hadoop-3.1.3/logs
-Dyarn.log.file=hadoop-root-datanode-gaocun.log
-Dyarn.home.dir=/home/software/hadoop-3.1.3
-Dyarn.root.logger=INFO,console
-Djava.library.path=/home/software/hadoop-3.1.3/lib/native
-Dhadoop.log.dir=/home/software/hadoop-3.1.3/logs
-Dhadoop.log.file=hadoop-root-datanode-gaocun.log
-Dhadoop.home.dir=/home/software/hadoop-3.1.3 -Dhadoop.id.str=root
-Dhadoop.root.logger=INFO,RFA -Dhadoop.policy.file=hadoop-policy.xml
org.apache.hadoop.hdfs.server.datanode.DataNode
3. ps axjf
功能 : 查看进程树
4. ps -aux --sort -pcpu | less
功能 : 根据cpu使用来升序排序
5. ps -aux --sort -pmem | less
功能 : 根据内存使用来升序排序
==============================================================================
jps
1. jps是什么
-- jps - Java Virtual Machine Process Status Tool
-- JDK1.5提供的软件
-- 功能 显示当前环境 正在运行的 java进程
2. 官方文档
-- https://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jps.html#options
3. 软件安装目录
[root@gaocun sbin]# type jps
jps 已被哈希 (/home/software/jdk1.8/bin/jps)
4. 常用命令
-- 使用语法 -- 1. 格式 jps [ options ] [ hostid ] -- 2. 参数 -- 0. 无参数 -- 说明 : 显示pid 和 类名 [root@gaocun sbin]# jps 22717 DataNode 12878 Jps 22510 NameNode 23023 SecondaryNameNode -- 1. -q -- 说明 : 只输出pid(进程id) ,不输出 类名、类文件、main方法的参数 -- 案例 -- 2. -m -- 说明 : 输出pid(进程id) 、类名、main方法的输入参数 -- 对于嵌入式jvm,输出可能为空 -- 3. -l -- 说明 : 输出pid(进程id) 、全类名 -- 案例 [root@gaocun sbin]# jps -l 22717 org.apache.hadoop.hdfs.server.datanode.DataNode 22510 org.apache.hadoop.hdfs.server.namenode.NameNode 23023 org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode 1759 sun.tools.jps.Jps -- 4. -v -- 说明 : 输出pid(进程id) 、执行jar包时,输出传递给JVM的参数 -- 案例 7301 Jps -Dapplication.home=/home/software/jdk1.8 -Xms8m 22717 DataNode -Dproc_datanode -Djava.net.preferIPv4Stack=true -Dhadoop.security.logger=ERROR,RFAS -Dyarn.log.dir=/home/software/hadoop-3.1.3/logs -Dyarn.log.file=hadoop-root-datanode-gaocun.log -Dyarn.home.dir=/home/software/hadoop-3.1.3 -Dyarn.root.logger=INFO,console -Djava.library.path=/home/software/hadoop-3.1.3/lib/native -Dhadoop.log.dir=/home/software/hadoop-3.1.3/logs -Dhadoop.log.file=hadoop-root-datanode-gaocun.log -Dhadoop.home.dir=/home/software/hadoop-3.1.3 -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,RFA -Dhadoop.policy.file=hadoop-policy.xml -- 4. -V -- 说明 : 输出pid(进程id) 、输出通过flags文件(.hotspotrc文件或-XX: flags =参数指定的文件)传递给JVM的参数。