我一直试图在一夜之间运行我的java程序,但我需要重新启动它有时保存它的进度,并完全重新启动机器。几个小时后,我让程序保存它的进度并执行一个小重启文件来重启程序。如何成功杀死一个java进程并在unix中重启它?
void restartServer() {
try {
Runtime rt = Runtime.getRuntime();
rt.exec("./restart.bat");
} catch (java.io.IOException err) {
logError(err.getMessage());
}
}
里面restart.bat我:
echo Restarting Server
killall -9 java
sleep 2;
nohup java -Xmx200m -classpath bin server.Main;
但是它不工作。它说:
[[email protected] java]# ./restart.bat
Restarting Server
: no process killed
: command not found 3:
nohup: appending output to `nohup.out'
: command not found 4:
[[email protected] java]#
为什么说java进程运行时没有进程死掉?为什么它没有找到命令?它从不重新启动程序。
在管理启动新的java进程之前,这可能不会自杀吗? – jontro 2011-05-25 21:34:18
@Bengt好点。我认为可能会发生。 – bacchus 2011-05-25 21:38:17
糟糕。我忘了在killall之前睡一觉。这应该解决它我认为。 – Kyle 2011-05-25 21:42:05