Java ubuntu shell脚本重启jar
我需要编写一个shell脚本,关闭正在运行的.jar并在终端中重新打开它。我从来没有写过shell脚本,也不知道从哪里开始 下面是我用来在终端中运行应用程序的命令Java ubuntu shell脚本重启jar,java,ubuntu-10.04,shell,Java,Ubuntu 10.04,Shell,我需要编写一个shell脚本,关闭正在运行的.jar并在终端中重新打开它。我从来没有写过shell脚本,也不知道从哪里开始 下面是我用来在终端中运行应用程序的命令 java -jar '/home/fdqadmin/NetBeansProjects/dbConvert2/dist/dbConvert2.jar' --Terminal=true 我正在运行Ubuntu10.04 LTS。关闭running.jar你能做什么?您使用的是Un*x系统,因此“kill-9”可以保证杀死进程,并释放进程
java -jar '/home/fdqadmin/NetBeansProjects/dbConvert2/dist/dbConvert2.jar' --Terminal=true
我正在运行Ubuntu10.04 LTS。关闭running.jar你能做什么?您使用的是Un*x系统,因此“kill-9”可以保证杀死进程,并释放进程正在使用的所有资源(或者您的Un*x系统不兼容,但我从未见过)
所以只要你发送一个kill-9,Java程序,所有的线程,所有的事情,都会完成。没有关机挂钩,什么都没有。就像你拉断了电源线一样
“kill-9”是否是您可以接受的终止正在运行的Java程序的方法?Java程序在被“杀死9”后会轻轻地重新启动吗?(应该很好地重新启动,但情况并非总是如此)
如果一个真正的kill是可以的,并且如果您知道.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特有领域,使用“smart”命令,如“jps”,但我更愿意使用功能强大的Un*x工具,非常感谢:)我以前在这里发表过评论,但如果您希望继续使用此方法,这里有一篇developerworks关于java信号处理的文章
然而,我仍然相信,与关闭当前代码模块之外的进程(即使是您编写的)的任何情况一样,通过许多进程间通信机制之一要求它停止。注意,这并不是在生命关键型系统上使用的防弹措施。这只是一个可以做什么的例子……这个系统确保200多名员工有能力工作,有没有100%可靠的方法?@JustinY17 SpoonBender试图说的是,这将在没有任何警告或任何事情的情况下停止您的流程。我同意他的观点(顺便说一下(+1)-更好的方法是以某种方式向这个程序传递一条消息,使它自动关闭。有一个脚本,等待它发生,然后重新启动它。你可以考虑一些类似于