有没有办法在nohup启动任务开始时收到通知?

时间:2014-11-21 13:45:20

标签: java unix amazon-web-services dropwizard nohup

我在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}

问题

  1. 如何解决服务停止运行的原因?... AWS服务器是否已重新启动?
  2. 有没有更好的方法来做这个不容易出错的
  3. 当服务停止运行时,有没有办法可以通知我...而不是经常检查它...
  4. 修改

    刚刚检查了AWS服务器上的正常运行时间,它说了7天。这与服务何时停止时相吻合。我想解决方案是让服务在服务器重启时自动启动。

1 个答案:

答案 0 :(得分:0)

您可以查看the solution used here,在程序关闭时给自己发送通知。 它不知道它是用nohup调用的,这是shell的一些东西。但是java解决方案可能适合您。

根据您的编辑,您可能需要创建一个init.d脚本来启动(并停止)您的流程: can be found here的模板。