ubuntu shell脚本重启jar

时间:2010-12-28 20:37:24

标签: java ubuntu-10.04 shell

我需要编写一个shell脚本来关闭正在运行的.jar并在终端中重新打开它。我从来没有写过shell脚本,也不知道从哪里开始。

这是我用来在终端中运行应用程序的命令。

java -jar '/home/fdqadmin/NetBeansProjects/dbConvert2/dist/dbConvert2.jar' --Terminal=true

我正在运行Ubuntu 10.04 LTS。

2 个答案:

答案 0 :(得分:1)

你是什么“关闭一个正在运行的.jar”?你使用的是Un * x系统,因此“kill -9”可以防止进程 AND 释放进程正在使用的所有资源(或者你的Un * x系统不符合要求,但我从未见过一个。)

因此,只要发送kill -9,Java程序,其所有线程,所有内容,都将完成。没有关机钩,没有什么。就好像你猛拉电源线一样。

“kill -9”是否可以成为杀死正在运行的Java程序的可接受方式? Java程序被“kill -9”后会轻轻重启吗? (它应该很好地重启,但并非总是如此)。

如果一个真正的杀戮很好,如果你知道.jar总是使用该命令行启动,如果你知道只有一个这样的.jar由用户启动,你可以这样:

#!/bin/bash

kill -9 $(ps aux | grep java | grep dbConvert2 | awk '{print $2}')
java -jar '/home/fdqadmin/NetBeansProjects/dbConvert2/dist/dbConvert2.jar' --Terminal=true

你也可以进入java-idiosynchratic的土地并使用像'jps'这样的“智能”命令但是我宁愿使用强大的Un * x工具,非常感谢:)

答案 1 :(得分:0)

我之前在这里评论过,但这里有一个关于Java信号处理的developerworks的interesting document,如果你想继续这个方法,可能会感兴趣。

但是,我仍然相信,无论如何关闭当前代码模块的异常进程,即使你编写它,也要求它通过许多进程间通信机制之一停止。< / p>