检查状态进程,Unix中的服务,Linux与Java



我有代码来检查Windows服务的状态,例如:

   Runtime r = Runtime.getRuntime();
            Process p = r.exec("net use \\"+server+"\ipc$ /user:"+domain+"\"+user+" "+password);
            p = Runtime.getRuntime().exec("sc query "+service);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line = reader.readLine();
            while (line != null) {
                if (line.trim().startsWith("STATE"))
                {
                    if (line.trim().substring(line.trim().indexOf(":") + 1,line.trim().indexOf(":") + 4).trim().equals("1"))
                        System.out.println("Stopped");
                    else if (line.trim().substring(line.trim().indexOf(":") + 1,line.trim().indexOf(":") + 4).trim().equals("2"))
                        System.out.println("Startting....");
                    else if (line.trim().substring(line.trim().indexOf(":") + 1,line.trim().indexOf(":") + 4).trim().equals("3"))
                        System.out.println("Stopping....");
                    else if (line.trim().substring(line.trim().indexOf(":") + 1,line.trim().indexOf(":") + 4).trim().equals("4"))
                        System.out.println("Running");
                }
                line = reader.readLine();
            }

现在,我想编写代码来检查Linux,Unix进程,如上所述的服务的状态。

谢谢

您可以使用 linux 命令ps进行交互(有关详细信息,请参阅man ps)以查看进程。

对于服务,这是依赖于发行版的;许多现代发行版使用 systemd,有些仍然使用 init 脚本。您需要研究针对要支持的任何发行版管理服务的方式。

最新更新