指令: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):