我正在将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
}
}));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。