我在DropWizard中开发了一项服务。我使用nohup命令在AWS服务器上运行fat jar。
nohup java -jar myapp-0.0.1-SNAPSHOT.jar server my-configure.yml > outfile &
这很好用。
然而,昨天我尝试使用使用该服务的应用程序但它无法正常工作。当我登录服务器时,我意识到该服务已不再运行。它运行了几个月没有任何问题。在日志(outfile)中,我只看到以下内容:
INFO [2014-11-13 19:48:31,978] org.eclipse.jetty.server.Server: Graceful shutdown SocketConnector@0.0.0.0:9001
INFO [2014-11-13 19:48:31,987] org.eclipse.jetty.server.Server: Graceful shutdown InstrumentedBlockingChannelConnector@0.0.0.0:9000
INFO [2014-11-13 19:48:31,988] org.eclipse.jetty.server.Server: Graceful shutdown o.e.j.s.ServletContextHandler{/,null}
INFO [2014-11-13 19:48:31,988] org.eclipse.jetty.server.Server: Graceful shutdown o.e.j.s.ServletContextHandler{/,null}
问题
修改
刚刚检查了AWS服务器上的正常运行时间,它说了7天。这与服务何时停止时相吻合。我想解决方案是让服务在服务器重启时自动启动。
答案 0 :(得分:0)
您可以查看the solution used here,在程序关闭时给自己发送通知。 它不知道它是用nohup调用的,这是shell的一些东西。但是java解决方案可能适合您。
根据您的编辑,您可能需要创建一个init.d脚本来启动(并停止)您的流程: can be found here的模板。