【问题标题】:Using monit with java在 java 中使用监视器
【发布时间】:2012-09-11 17:39:22
【问题描述】:

我正在使用工具monit 来启动/停止进程。我有一个java文件如下:

class test {
 public void start()
 {
  //do something
 }
 public void stop()
 {
  //do something
 }
}

我想在从 monit 发出启动命令时调用启动函数,反之亦然。我似乎找不到一个很好的教程来解释我需要采取哪些步骤来执行 start 和 stop 方法。我需要编写一个 bash 脚本吗? monit 会调用 bash 脚本,而后者又会调用 java 方法?

【问题讨论】:

  • 那么当monit启动时start()方法运行,当monit停止时stop()方法被调用?
  • 我实际上是在 Mac OS X 10.7 上使用它。

标签: java bash monitoring monit


【解决方案1】:

java 程序的入口点是main 方法。

public static void main(String [] args) 
{
    // args carry the command line arguments.
}

在您的情况下,您应该创建一个 test 实例并在该实例上调用 start() 方法。

public static void main(String [] args) 
{
    test obj = new test();
    obj.start();
}

Java 的Runtime 类提供了添加shutdown hook 的选项,该shutdown hook 在Java 程序终止时被调用。你编写了一个简单的线程类,它可以访问在上面的 main 方法中创建的test 实例,这样当调用关闭钩子线程的 run 方法时,你就可以将它委托给测试实例的 stop 方法。

希望这会有所帮助。

【讨论】:

  • 谢谢。它有助于。但是 monit 将如何调用我的 java main 方法呢?
  • 如果monit可以启动一个进程,那么它会简单地调用java <your fully-qualified-class-name> <optional commandline arguments>。例如 java com.vikdor.apps.MainLauncher 其中 MainLauncher 定义了静态 main 方法,该方法将执行响应中讨论的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 2011-05-03
  • 2013-10-26
相关资源
最近更新 更多