摘要: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();
}
}