Java程序如何在Linux系统下自行重启?

Python012

Java程序如何在Linux系统下自行重启?,第1张

在 java 程序 A 中,如果通过 Runtime.getRuntime().exec() 来启动 java 程序 B,即使不加 nohup,A 结束后 B 也不会被杀。

我觉得可能程序 B 根本就没启动成功,或者已经运行结束了。你可以打个断点测试下。

这个是startup.sh的脚本

#!/bin/bash

java -Xms512m -Xmx1024m -classpath lib/antlr-2.7.6.jar:lib/commons-collections-3.2.jar:lib/jta.jar ...... xx.MainClass%1 %2

java -cp "$CLASSPATH" xx.MainClass>console.log &echo $! >MainClass.pid &

MainClass是我服务器的启动入口main所在的类.

脚本也是看到网上其他朋友写的,这个脚本在服务器启动的同时将pid写到MainClass.pid中下面的是restart.sh脚本

#!/bin/bash

cat MainClass.pid | xargs kill -9

java -Xms512m -Xmx1024m -classpath lib/antlr-2.7.6.jar:lib/commons-collections-3.2.jar:lib/jta.jar ...... xx.MainClass%1 %2这个脚本就是先关闭pid为MainClass.pid的进程

然后再启动.

问题是在服务器启动后,利用ps -aux查看进程,没有发现MainClass.pid的值

java.exe的pid是另外一个值...