守护线程的作用 类似在后台静默执行 , 比如JVM的垃圾回收机制, 这个就是一个稿铅 守护线程。 而非守护线程则不会。
可以通过GuardServer实现,具体代码如下
1 public class GuardServer {2 private String servername
3
4 public GuardServer(String servername) {
5 this.servername = servername
6 }
7
8 public void startServer(String cmd) throws Exception {
9 System.out.println("Start Server : " + cmd)
10 //将命令分开
11 // String[] cmds = cmd.split(" ")
12 // ProcessBuilder builder = new ProcessBuilder(cmds)
13
14 //
15 ProcessBuilder builder=new ProcessBuilder(new String[]{"/bin/sh","-c",cmd})
16 //将服务器程序的输出定位到/dev/tty
17 builder.redirectOutput(new File("/dev/tty"))
18 builder.redirectError(new File("/dev/tty"))
19 builder.start() // throws IOException
20 Thread.sleep(10000)
21 派喊差 }
22
23 /**
24 * 检测服务是否存在
25 *
26 * @return 返回配置的java程序的pid
27 * @return pid >0 返回的是 pid <=0 代表指定java程序未运行
28 * **/
29 public int checkServer() throws Exception {
30 int pid = -1
31 渗碧Process process = null
32 BufferedReader reader = null
33 process = Runtime.getRuntime().exec("jps -l")
34 reader = new BufferedReader(new InputStreamReader(process.getInputStream()))
35 String line
36 while ((line = reader.readLine()) != null) {
37 尘皮 String[] strings = line.split("\\s{1,}")
38 if (strings.length < 2)
39 continue
40 if (strings[1].contains(servername)) {
41 pid = Integer.parseInt(strings[0])
42 break
43 }
44 }
45 reader.close()
46 process.destroy()
47 return pid
48 }
49 }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)