摘要:JAVA 取得程式執行的PID(Process ID)
為了檢查自己的Java程式是否存在,
則需要取得自己的PID
並且判斷該PID是否還在運作中。
寫檢查程式的方式,
首先,
取得PID的程式如下
public class SystemUtils {
private SystemUtils() {}
public static long getPID() {
String processName =
java.lang.management.ManagementFactory.getRuntimeMXBean().getName();
return Long.parseLong(processName.split("@")[0]);
}
public static void main(String[] args) {
String msg = "My PID is " + SystemUtils.getPID();
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, msg, "SystemUtils", javax.swing.JOptionPane.DEFAULT_OPTION);
}
}
再將這個PID輸出成A.PID ,這時候只要寫shell script去檢查這A.PID的pid的執行程式,是否還活著,就可以了。
雖然我已經知道怎麼使用shell script判斷是否還活著,但留這個 java程式,未來會比較方便找程式碼片段。
網路文章如下:
http://www.rgagnon.com/javadetails/java-0651.html
經改良後的程式,並且輸出檔案的程式片段如下。
public long getPID() {
String processName =
java.lang.management.ManagementFactory.getRuntimeMXBean().getName();
return Long.parseLong(processName.split("@")[0]);
}
public void createPidFile(String filePath) {
try {
long pid = this.getPID();
FileOutputStream fileOutputStream = new FileOutputStream(filePath);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream,"big5");
outputStreamWriter.write(String.valueOf(pid));
outputStreamWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}