我正在使用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做的事情。
答案 0 :(得分:2)
我已经使用Tanuki软件相当于这个产品4年多了,从开始我的方法包括事实(在你的情况下)YAJSW并不真正知道底层应用程序的状态是什么 - 所有它知道它启动了一个JVM,指示它加载你在配置文件中指定的类,并且JVM没有对YAJSW做出负面响应或终止。
所以 - 我想让我的java应用程序盲目但是让每个人都知道24x7应用程序在其工作中的位置,所以我的java守护进程通常会将状态和面向操作的信息发布到数据库表 - 我构建了一个简单的swing客户端,用于显示历史和当前状态数据。 Mine是一个简单的单点解决方案,不值得进行大量以操作为重点的工作,但我也做了添加支持,使恶魔尽可能自主(不需要操作干预)。
例如,我添加了逻辑来识别和恢复Oracle数据库错误,包括识别错误属于临时性的可重试请求(空间不足,Oracle数据库实例尚未完全启动,Oracle数据库实例)正在关闭,等等我可以将状态信息回显到状态表,然后定期重试直到成功。