Jenkins 如何以编程方式停止可执行war

Jenkins 如何以编程方式停止可执行war,jenkins,jetty,war,Jenkins,Jetty,War,在Linux系统中,我在后台作为服务停止可执行war文件时遇到问题。我可以使用以下脚本启动可执行war: java -jar data.war& 但是我如何通过Jenkins使用SSH插件以编程方式停止它呢?我可能会从使用停止端口机制开始。有关示例,请参阅本文档 对于那些需要答案的人 PROCESSID=`(ps aux | grep data| grep -v root | awk '{print $2}')` kill -9 $PROCESSID 上述代码终止进程列表中名

在Linux系统中,我在后台作为服务停止可执行war文件时遇到问题。我可以使用以下脚本启动可执行war:

    java -jar data.war&

但是我如何通过Jenkins使用SSH插件以编程方式停止它呢?

我可能会从使用停止端口机制开始。有关示例,请参阅本文档


对于那些需要答案的人

PROCESSID=`(ps aux | grep data| grep -v root | awk '{print $2}')`
kill -9 $PROCESSID

上述代码终止进程列表中名为“data”的应用程序

在我的情况下不起作用,命令继续启动服务器,但由于服务器端口重复而失败。请注意,“kill-9”相当于立即调用
System.exit()
。JVM没有机会处理这种情况。我非常肯定,即使是在sun package API下的系统级,JVM也有方法来处理退出,正如我读到的一些文章所说,没有-9意味着现在!做了一些调查,证明你是对的。也许kill-SIGTERM更适合让Java prog来处理信号,我也希望您没有任何其他进程不是由root运行的,它们的输出中某处有字符串“data”通过“ps-aux”。