摘要:用語(yǔ)言編程時(shí),可以用函數(shù)獲取進(jìn)程的,但在中,居然沒(méi)有提供可以直接獲取進(jìn)程的方法,不知公司是怎么想的。下面提供一種在程序中獲取當(dāng)前程序的方法。
用C語(yǔ)言編程時(shí),可以用getpid()函數(shù)獲取進(jìn)程的PID,但在JAVA中,居然沒(méi)有提供可以直接獲取進(jìn)程PID的方法,不知SUN公司是怎么想的。雖然在JAVA編程時(shí)很少用到PID,但有時(shí)為了能夠在Linux下把一個(gè)在后臺(tái)運(yùn)行的JAVA應(yīng)用程序終止,可能需要用到PID,當(dāng)然,終止后臺(tái)運(yùn)行的JAVA應(yīng)用程序的方法很多,找到它的PID,通過(guò)kill -9 pid命令去殺死它是其中一種方法。下面提供一種在JAVA程序中獲取當(dāng)前程序PID的方法。
import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; public class JavaPID { public static void main(String[] args) { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); String name = runtime.getName(); System.out.println("當(dāng)前進(jìn)程的標(biāo)識(shí)為:"+name); int index = name.indexOf("@"); if (index != -1) { int pid = Integer.parseInt(name.substring(0, index)); System.out.println("當(dāng)前進(jìn)程的PID為:"+pid); } try { //這里休息60秒,是為了在windows管理器查看該應(yīng)用程序的進(jìn)程PID Thread.sleep(60*1000); } catch (InterruptedException e) { e.printStackTrace(); } } }
控制臺(tái)輸出如下:
當(dāng)前進(jìn)程的標(biāo)識(shí)為:6916@lidonghao-PC
當(dāng)前進(jìn)程的PID為:6916
打開(kāi)Windows的資源管理器,可以看到當(dāng)前運(yùn)行的JAVA應(yīng)用程序的PID,如下:
這樣,獲取到當(dāng)前JAVA應(yīng)用程序的PID后,就可以直接把PID寫(xiě)到一個(gè)臨時(shí)文件中,需要關(guān)閉該應(yīng)用程序時(shí),直接手動(dòng)執(zhí)行kill -9 pid命令,或者寫(xiě)一個(gè)shell腳本,在腳本中執(zhí)行kill命令。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/64026.html
摘要:獲取當(dāng)前進(jìn)程以及所有進(jìn)程的進(jìn)程首先是獲取當(dāng)前運(yùn)行的進(jìn)程,這個(gè)是網(wǎng)上常見(jiàn)的,也就是程序自身將進(jìn)程打印出來(lái)是一個(gè)在運(yùn)行時(shí)管理和監(jiān)控的工廠類(lèi),它能提供很多管理的靜態(tài)接口,比如是虛擬機(jī)的運(yùn)行時(shí)管理接口獲取所有正在運(yùn)行著的進(jìn)程獲取監(jiān)控主機(jī)取得所有在活 Java獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID 首先是獲取當(dāng)前Java運(yùn)行的Java進(jìn)程ID,這個(gè)是網(wǎng)上常見(jiàn)的,也就是Java程序自身將...
摘要:獲取當(dāng)前進(jìn)程以及所有進(jìn)程的進(jìn)程首先是獲取當(dāng)前運(yùn)行的進(jìn)程,這個(gè)是網(wǎng)上常見(jiàn)的,也就是程序自身將進(jìn)程打印出來(lái)是一個(gè)在運(yùn)行時(shí)管理和監(jiān)控的工廠類(lèi),它能提供很多管理的靜態(tài)接口,比如是虛擬機(jī)的運(yùn)行時(shí)管理接口獲取所有正在運(yùn)行著的進(jìn)程獲取監(jiān)控主機(jī)取得所有在活 Java獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID 首先是獲取當(dāng)前Java運(yùn)行的Java進(jìn)程ID,這個(gè)是網(wǎng)上常見(jiàn)的,也就是Java程序自身將...
摘要:指的是占用了一個(gè)核心,兩個(gè)核心是,以此類(lèi)推。占用率及對(duì)應(yīng)進(jìn)程可以通過(guò)命令確定,在界面按顯示完整的命令行參數(shù),按顯示每個(gè)核心的統(tǒng)計(jì)數(shù)據(jù)。查看線程堆棧,找到對(duì)應(yīng)的類(lèi)及行號(hào),然后閱讀代碼查找可能的問(wèn)題原因。 100%指的是占用了CPU一個(gè)核心,兩個(gè)核心是200%,以此類(lèi)推。CPU占用率及對(duì)應(yīng)進(jìn)程ID(pid)可以通過(guò)top命令確定,在top界面按 c (顯示完整的命令行參數(shù)),按 1 (顯示...
讀取/proc/{pid}/stat /** * Get CPU stat of specified process. * @param pid Process ID * @return null may be returned if some unexpected things happens */ public static long[] get...
閱讀 2901·2021-11-17 09:33
閱讀 2294·2021-09-03 10:40
閱讀 606·2019-08-29 18:45
閱讀 3024·2019-08-29 16:21
閱讀 670·2019-08-29 11:11
閱讀 3458·2019-08-26 12:00
閱讀 3024·2019-08-23 18:19
閱讀 1157·2019-08-23 12:18