java - 检查进程是否在 windows/linux 上运行

标签 java process

我有一个过程

Runtime rt = Runtime.getRuntime() ;
Process p = rt.exec(filebase+port+"/hlds.exe +ip "+ip+" +maxplayers "+players+ " -game cstrike -console +port "+port+" -nojoy -noipx -heapsize 250000 +map de_dust2 +servercfgfile server.cfg +lservercfgfile +mapcyclefile mapcycle.txt +motdfile motd.txt +logsdir logs -zone 2048",null,  new File(filebase+port)) ;

我想检查此进程是否正在运行或是否已崩溃以防崩溃想要重新启动它,此进程可以有多个实例可用,具体取决于端口

我可以在 Linux 和 Windows 上跟踪这个东西吗?阅读一些关于它的文章,但是这个 1 有点不同,因为它涉及多次出现并且只需要检查一些特定的过程

最佳答案

boolean isRunning(Process process) {
    try {
        process.exitValue();
        return false;
    } catch (Exception e) {
        return true;
    }
}

参见 http://docs.oracle.com/javase/6/docs/api/java/lang/Process.html#exitValue()

关于java - 检查进程是否在 windows/linux 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5799424/

相关文章:

java - 负环视正则表达式 - 仅出现一次 - Java

python - 进程 join() 是如何工作的?

java - 如何在单个 JDBC 连接中执行多个 JPA 查询

java - 如何拆分没有特殊字符的解析字符串数据?

javascript - 填写表格正常,但验证不采用字段内容

java - 如何安全地使用 SwingWorker?

c# - 从作为 LocalSystem 运行的 WCF 托管服务以特定用户身份启动进程

C- 如何使用 fork() 操作进程、子进程和孙进程;

python multiprocessing - 进程挂起加入大队列

Java 初始化顺序问题,静态与实例字段