指令:ps -elf |grep java|grep -v grep |head -n 1 |awk ‘{printf $4}’
关于ps 指令,在部署应用程序到linux主机时候,会用到,如查询当前进程信息,比较常用的指令如下。
<1>获取java进程 进程组信息:
ps -elf |grep java
unix标准风格组合,其中-e 代表列出所有进程,-l 代表长格式,-f 代表完整的格式
如图:
上述:F : 程序的旗标 (flag),S : 程序的状态 (STAT),UID : 执行者身份, PID : 进程的ID号,PPID : 父进程的ID,C : CPU 使用的资源百分比;等等;
<2>获取java进程 进程资源信息
ps -aux |grep java
BSD 风格选项组合,a表示所有关联到终端的进程,如果同时使用 x 则代表所有进程;u 表示列出进程的用户
如图:
上述user:用户,pid:线程id,cpu:%cpu占用率,%mem:内存占用率;等等;
<3>获取第一个该进程的 进程id号。
ps -elf |grep java|grep -v grep |head -n 1 |awk '{printf $4}'
命令说明(其中 | 表示接续处理):
- 先ps -elf 获取进程信息
- grep java 是获取包含java信息的进程
- grep -v grep 是获取排除 ‘grep指令’ 的进程信息
- head -n 1 是获取第一行
- awk ‘{printf $4}’ , awk类似split,是默认空格切割,此处表示获取第四个元素信息,即pid号。
结果如下(获取pid为29090,即为java程序pid):