用java写一个进程守护程序
Java可以使用ProcessBuilder和Process类来启动和控制进程。进程守护程序可以使用Java的定时器功能,定期检查指定进程是否正在运行,如果进程意外停止,则自动重启进程。
以下是一个示例程序,用于监控名为“sample.exe”的进程。如果进程停止,则自动重启进程。
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
public class ProcessMonitor {
private static final String PROCESS_NAME = "sample.exe";
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new ProcessChecker(), 0, 5000); // 5秒钟检查一次进程
System.out.println("Process monitor started.");
}
private static class ProcessChecker extends TimerTask {
private Process process;
public void run() {
try {
process = new ProcessBuilder(PROCESS_NAME).start(); // 启动进程
} catch (IOException e) {
System.out.println("Failed to start process.");
return;
}
// 等待进程退出
try {
process.waitFor();
} catch (InterruptedException e) {
System.out.println("Process interrupted.");
}
System.out.println("Process stopped, restarting...");
}
}
}
注意:此示例程序仅适用于Windows操作系统,如果要在其他操作系统上运行,请相应地修改“PROCESS_NAME”的值。
原文地址: https://www.cveoy.top/t/topic/slW 著作权归作者所有。请勿转载和采集!