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”的值。

用java写一个进程守护程序

原文地址: https://www.cveoy.top/t/topic/slW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录