1

我正在使用 Yajsw 将我的应用程序作为守护进程运行。

对于状态调用,我想查看“正在运行”或“已停止”,但我收到了如下所示的消息

SW043305-SRV01:/etc/init.d # ./testDaemon status 
15.06.2012 16:13:57 org.apache.commons.vfs.VfsLog info 
INFO: Using "/tmp/vfs_cache" as temporary files store. 
15.06.2012 16:13:58 org.rzo.yajsw.os.posix.PosixService init 
INFO: /etc/init.d/testDaemon already exists 
15.06.2012 16:13:58 org.rzo.yajsw.os.posix.PosixService getPid 
INFO: wrapper pid file: /var/run/wrapper.testDaemon.pid

我如何自定义打印的结果。在 windows 下好消息,是专门为 linux 做的任何事情。

4

1 回答 1

2

我已经使用相当于这个产品的 Tanuki 软件 4 年多了,从一开始我的方法就包括这样一个事实,即(在你的情况下)YAJSW 并不真正知道底层应用程序的状态是什么——它只知道是它启动了一个 JVM,指示它加载您在其配置文件中指定的类,并且 JVM 尚未对 YAJSW 做出否定响应或终止。

所以 - 我想让我的 java 应用程序失明,但让每个人都可以知道 24x7 应用程序在其工作中的位置,所以我的 java 守护程序通常将状态和面向操作的信息发布到数据库表中 - 我构建了一个简单的 swing客户端显示历史和当前状态数据。我的是一个简单的单点解决方案,不值得进行大量以操作为中心的工作,但我也添加了支持,使恶魔尽可能自主(不需要操作干预)。

例如,我添加了识别 Oracle 数据库错误并从中恢复的逻辑,包括识别可重试请求,其中错误是暂时的(空间不足,Oracle 数据库实例尚未完全启动,Oracle 数据库实例正在关闭等),我可以将状态信息回显到状态表,然后定期重试直到成功。

于 2012-09-10T17:45:06.847 回答