bash java_如何从Bash Shell脚本正常关闭Java服务?

我正在将Java REST服务从“传统”方式(作为兼容servlet的.war部署到多租户应用服务器(Tomcat))转换为更简单的嵌入式设置,其中有一个简单的Java主类启动嵌入式http服务器(Grizzly Jersey).一个缺少的部分是服务包装器.我可以通过执行’java -jar myservice.jar’来手动运行该服务,但是我想实现为适当的Linux后台服务.

通常,这是通过放入/etc/init.d中的简单Bash shell脚本完成的.我已经看到了一些超级简单的示例,但是它们使用进程终止而不是正常关闭来实现关闭.我也看到了一些商用工具来处理此问题,但是此任务似乎太简单了,无法使用商用工具.

我的第一个猜测是在第二个端口上添加一个单独的超级简单REST服务,以监听关闭请求,并让/etc/init.d Bash shell脚本以这种方式发送关闭请求.

是否有更好或更标准的解决方案来解决此问题?

解决方法:

kill是可以的(如果不是kill -9),则应仅执行shutdown钩子以正常停止

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {

@Override

public void run() {

//TODO stop web server and close db connection if needed

}

}));

标签:bash,daemon,web-services,linux,java

来源: https://codeday.me/bug/20191122/2059059.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值