java - apache procrun 启动服务失败

标签 java multithreading service procrun

编辑

我正在使用 loaderDeamon 接口(interface)来安装和运行 java 应用程序作为 Windows 服务。为此,Apache 的 procrun 服务工具(与 tomcat 一起安装的工具相同)处理服务的安装和执行。

最近通过服务管理器执行服务时,服务声称正在运行,但没有响应。没有写入日志,应用程序的客户端无法通信。这让我觉得该服务实际上并未在运行。

我已尝试通过此处记录的//TS 命令通过 procrun 启动服务:http://commons.apache.org/daemon/procrun.html ,即使我们等待长达 24 小时,它也会挂起并且没有启动服务。 procrun 本身会生成我们捕获的日志。完整的日志包含在下面。我有几个关于日志的问题,我希望这些问题可以解决服务无法启动的原因。

  1. 首先,'Java Worker thread finished... start with status=6' 指示线程终止?
  2. 其次,当我们到达该行时哪些线程仍在执行 '等待所有线程退出'?
  3. 第三,日志中是否还有其他突出的内容 启动服务时可能会出现问题?

此服务过去执行成功,最近在升级到 java 版本 1.7.5 后失败。我恢复到 java 1.7.3 并生效,所以我相信 jvm 的变化是不相关的,但值得一提。

[2012-07-24 07:16:04] [debug] ( prunsrv.c:1644) Commons Daemon procrun log initialized
[2012-07-24 07:16:04] [info]  ( prunsrv.c:1648) Commons Daemon procrun (1.0.10.0 32-bit) started
[2012-07-24 07:16:04] [debug] ( prunsrv.c:559 ) Installing service...
[2012-07-24 07:16:04] [info]  ( prunsrv.c:595 ) Service CProgramFilesx86XpressfeedLoaderV5serviceLoaderEngine name XF Engine - C:\Program Files (x86)\Xpressfeed Loader V5 service\Loader
[2012-07-24 07:16:04] [debug] ( prunsrv.c:611 ) Setting service description The Xpressfeed V5 loader engine, used in headless mode to run load jobs in the background.
[2012-07-24 07:16:04] [info]  ( prunsrv.c:629 ) Service 'CProgramFilesx86XpressfeedLoaderV5serviceLoaderEngine' installed
[2012-07-24 07:16:04] [info]  ( prunsrv.c:1729) Commons Daemon procrun finished
[2012-07-24 07:16:13] [debug] ( prunsrv.c:1644) Commons Daemon procrun log initialized
[2012-07-24 07:16:13] [info]  ( prunsrv.c:1648) Commons Daemon procrun (1.0.10.0 32-bit) started
[2012-07-24 07:16:13] [info]  ( prunsrv.c:1545) Debugging 'CProgramFilesx86XpressfeedLoaderV5serviceLoaderEngine' service...
[2012-07-24 07:16:13] [debug] ( prunsrv.c:1345) Inside ServiceMain...
[2012-07-24 07:16:13] [info]  ( prunsrv.c:1089) Starting service...
[2012-07-24 07:16:13] [debug] ( javajni.c:206 ) loading jvm 'C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll'
[2012-07-24 07:16:13] [debug] ( javajni.c:660 ) Jvm Option[0] -Djava.net.preferIPv4Stack=true
[2012-07-24 07:16:13] [debug] ( javajni.c:660 ) Jvm Option[1] -Djava.class.path=.;conf;dist\XpressfeedLoader.jar;lib\antlr-2.7.6.jar;lib\apache-log4j-extras-1.1.jar;lib\asm.jar;lib\auth\IA64\sqljdbc_auth.dll;lib\auth\x64\sqljdbc_auth.dll;lib\auth\x86\sqljdbc_auth.dll;lib\c3p0-0.9.1.2.jar;lib\cglib-2.2.jar;lib\commons-codec-1.4.jar;lib\commons-collections-3.1.jar;lib\commons-daemon-1.0.3.jar;lib\commons-dbcp-1.4.jar;lib\commons-lang-2.5.jar;lib\commons-logging-1.0.4.jar;lib\commons-pool-1.5.5.jar;lib\derby-10.6.2.1.jar;lib\dom4j-1.6.1.jar;lib\edtftpj-pro.jar;lib\freemarker.jar;lib\gui\jcommon-1.0.16.jar;lib\gui\jfreechart-1.0.13.jar;lib\hibernate-c3p0-3.5.2-Final.jar;lib\hibernate-tools.jar;lib\hibernate3.jar;lib\hsqldb.jar;lib\IAClasses.zip;lib\jargs.jar;lib\javassist.jar;lib\jaxen-1.1.1.jar;lib\jta.jar;lib\jtidy-r8-20060801.jar;lib\jung\collections-generic-4.01.jar;lib\jung\colt-1.2.0.jar;lib\jung\concurrent-1.3.4.jar;lib\jung\j3d-core-1.3.1.jar;lib\jung\jung-3d-2.0.1.jar;lib\jung\jung-algorithms-2.0.1.jar;lib\jung\jung-api-2.0.1.jar;lib\jung\jung-graph-i
[2012-07-24 07:16:13] [debug] ( javajni.c:660 ) Jvm Option[2] -Xms256m
[2012-07-24 07:16:13] [debug] ( javajni.c:660 ) Jvm Option[3] -Xmx1024m
[2012-07-24 07:16:13] [debug] ( javajni.c:880 ) DLL search path set to 'C:\PROGRA~2\XPRESS~2\jre\bin'
[2012-07-24 07:16:13] [debug] ( javajni.c:897 ) Java Worker thread started com/capitaliq/loader/loaderservice/LoaderService:start
[2012-07-24 07:16:13] [debug] ( javajni.c:914 ) Java Worker thread finished com/capitaliq/loader/loaderservice/LoaderService:start with status=6
[2012-07-24 07:16:14] [debug] ( prunsrv.c:1148) Java started com/capitaliq/loader/loaderservice/LoaderService
[2012-07-24 07:16:14] [info]  ( prunsrv.c:1244) Service started in 1160 ms.
[2012-07-24 07:16:14] [debug] ( prunsrv.c:1496) Waiting for worker to finish...
[2012-07-24 07:16:14] [debug] ( prunsrv.c:1501) Worker finished.
[2012-07-24 07:16:14] [debug] ( prunsrv.c:1524) Waiting for all threads to exit

我采取的无效步骤:

  1. 通过调试在控制台运行服务
  2. 指定 java SE 版本 1.7.5、1.7.3
  3. 只是使用默认的jvm 1.6.30,没有指定
  4. 广泛的谷歌工作

感谢任何帮助或想法!谢谢!

最佳答案

最近,我不得不尝试让 procrun 也运行我的服务。经过几个小时的尝试,我发现将 --StdOutput--StdError 重定向参数设置为 auto 的问题。 stderr 日志在 --LogPath 中生成,包含标准日志文件中看不到的堆栈跟踪和其他启动问题。

关于java - apache procrun 启动服务失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11632275/

相关文章:

mysql - 杀死在任何端口上运行的 Mysql 服务,Mac Sierra

c# - 从 Windows 服务打印,无对话框,无用户交互

java - 如何改变java中算术运算符的优先级?

c - 主进程退出后如何保持线程存活?

java - 在java swing中运行的脚本需要等待线程完成

c++ - pthread 并行运行类实例的方法

android - 当我的服务运行 TimerTask 时,如何防止 UI 挂起?

java - 当我将字符串数组和整数数组合并到合并数组时,合并数组时我想使用什么数据类型

Java nio服务端客户端异步

java - 如何在jce中使用生成和编码的 key