5

我正在研究 Apache Daemon 来帮助我开发一个 Java 应用程序,我只是想获得一些关于什么是可能的想法/提示。

我想创建一个显示某种故障保护能力的简化应用程序。该应用程序将依次执行 4 个步骤(想象它在每个步骤中仅打印一个简单的文本文件,例如第 1 步是“A”,第 2 步是“B”等),我想能够强制关闭 JVM,然后让它自动重新启动 Java 应用程序并恢复打印输出(想象它就像一个孩子拔掉电视上的插头,然后它自己又重新打开了)。

这可以通过 Apache Daemon 来实现吗?如果是这样,我将如何自动化?我是否需要在操作系统级别附加一些第三程序(比如一个简单的 C 程序,它本身监控流程?)。

在这个阶段,我只是在寻找指针,因为我意识到我将做什么并不是很清楚。我更喜欢 Windows,但我也有 Mac,如果 Mac 更好,我愿意使用 Mac(我知道 Linux 有一些独特的工具/功能)。任何提示/想法表示赞赏。

到目前为止,我已经尝试在这里使用本教程来寻求帮助,它很有用,但没有我需要的那么彻底。

4

1 回答 1

6

在 Windows 上,上次我检查它不是由 procrun(commmons-daemon)管理,而是由 Windows 服务管理。

您可能需要在守护程序安装后配置服务恢复

  • sc 失败 %SERVICE_NAME% 重置 = 60 次操作 = 重新启动/30000
  • sc 失败标志 %SERVICE_NAME%1

其中 %SERVICE_NAME% 是...您的服务名称

恢复逻辑应该在您的应用程序中

编辑:添加更多上下文

windows上的服务安装见https://commons.apache.org/proper/commons-daemon/procrun.html

发出命令时(手动或使用 cmd 脚本)

前任 :

set SERVICE_NAME=myService
prunsrv //IS//%SERVICE_NAME% --DisplayName="Test Service" \
    --Install=prunsrv.exe --Jvm=auto --StartMode=jvm --StopMode=jvm \
    --StartClass=org.apache.SomeStartClass --StartParams=arg1;arg2;arg3 \
    --StopClass=org.apache.SomeStopClass --StopParams=arg1#arg2

在服务安装后添加恢复设置

前任

sc failure %SERVICE_NAME% reset= 60 actions= restart/30000 
sc failureflag %SERVICE_NAME% 1
于 2015-11-25T14:11:36.507 回答