首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ubuntu shell脚本重启jar

ubuntu shell脚本重启jar
EN

Stack Overflow用户
提问于 2010-12-29 04:37:24
回答 2查看 2.8K关注 0票数 2

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

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

代码语言:javascript
运行
复制
java -jar '/home/fdqadmin/NetBeansProjects/dbConvert2/dist/dbConvert2.jar' --Terminal=true

我正在运行Ubuntu 10.04 LTS。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-29 04:45:44

“关闭一个正在运行的.jar”是什么意思?您在Un*x系统上,因此"kill -9“肯定会杀死进程并释放该进程正在使用的所有资源(或者您的Un*x系统不兼容,但我从未见过这样的系统)。

所以,只要您发送kill -9,Java程序,它的所有线程,一切都将完成。没有关闭钩子,什么都没有。就像你拉了电源线一样。

"kill -9“是一种可以接受的杀死正在运行的Java程序的方式吗?Java程序会在被"kill -9'ed“之后轻轻地重启吗?(它应该会很好地重启,但情况并不总是这样)。

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

代码语言:javascript
运行
复制
#!/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特有的领域,使用像'jps‘这样的“智能”命令,但我更愿意使用强大的Un*x工具,非常感谢:)

票数 1
EN

Stack Overflow用户

发布于 2010-12-30 01:34:55

我以前在这里做过评论,但是这里有一个来自developerworks的关于Java信号处理的interesting document,如果您想继续使用这个方法,它可能会引起您的兴趣。

然而,我仍然相信,就像在任何情况下关闭当前代码模块之外的进程一样,即使是您编写了它,也是通过许多进程间通信机制之一来请求它停止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4549318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档