问题标签 [apache-commons-daemon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
291 浏览

java-9 - 是否可以使用 jvm 模式使用 prunsrv 启动 Java 运行时映像?

背景:从 Java 9 开始,可以使用jlink创建自定义运行时映像(JRE+程序)。

可以使用prunsrv.exeApache Commons Daemon的一部分)将 Java 程序安装为 Windows 服务。

prunsrv可用于三种启动模式:javajvmexe

我设法使用exe模式启动自定义运行时映像,并使用jvm模式启动传统 Java 程序(类路径 + 普通 JDK),但我无法使用jvm模式(不会启动新进程)与图像.

prunsrv有一个“ JvmOptions9 ”参数,这可能暗示可能支持这种情况,但我不确定。

0 投票
0 回答
779 浏览

java - Procrun (prunsrv.exe) 无法使用 JDK 11 自动找到 jvm.dll

在装有 JDK 11 的 Windows 机器上使用最新的 Apache Commons Daemon 1.2.0,它无法自动找到 jvm.dll 文件并抛出以下错误:

我需要打开服务的属性并手动将其指向我的 JDK 安装目录中的 jvm.dll 文件。

有没有办法可以将其设置为在安装服务时自动查找文件?JDK 8 就像一个魅力。

0 投票
0 回答
324 浏览

jetty - 使用 Apache 守护程序作为 Windows 服务运行时,嵌入式码头未启动

我正在尝试使用 Apache Commons Daemon 1.2.0 将嵌入式码头作为 Windows 服务运行。我可以使用 java -jar 运行嵌入式码头 jar 并成功启动服务器,但是当我尝试使用 Apache Daemon 运行它时它不起作用。

我正在使用 maven shade 插件来生成嵌入式 jar。

使用以下命令使用 prunsrv 安装后启动服务时,日志中会打印以下内容并且服务未启动:

winserv 守护进程日志:

在说明使用 Windows 管理工具 > 服务时,我得到:

试过此服务将无法启动:错误 1067:进程意外终止,但没有帮助。

下面是创建嵌入式码头 jar 的代码: 启动码头的类:

pom.xml 用于使用 maven shade 生成嵌入式码头 jar:

0 投票
1 回答
650 浏览

java - 错误“目录名称无效。” 使用 apache daemon windows service 执行 jar 时

我正在尝试将一个简单的 java jar 作为 Windows 服务运行。创建服务并尝试启动它后,我收到以下错误:

ServiceStart 返回 5。目录名无效。

完整日志:

即使我以管理员身份运行命令,Windows 事件查看器也会显示以下内容:

用于创建服务的命令:

开始.bat

我在 daemon.jar 中有一个非常简单的代码,如下所示,如果使用 java -jar 执行,jar 可以工作:

0 投票
1 回答
186 浏览

wildfly - 将 Wildfly 作为 Windows 服务启动并等待启动完成

我一直在使用http://commons.apache.org/proper/commons-daemon/为 Wildfly 启动创建 Windows 服务(使用某些博客中建议的 exe 模式)。问题是,该服务立即被标记为正在运行。我还有一些其他服务只有在 Wildfly 启动并运行后才允许启动。使这些服务依赖于 Wildfly 服务是行不通的,因为启动需要 20-60 秒。

有没有办法让 procrun 在服务被标记为运行之前等待返回值或至少等待固定时间?

0 投票
1 回答
100 浏览

windows - Apache Common Daemons:PrunServ --StartPath 参数覆盖 Windows 上的 PATH

我在 Windows 10 工作站上运行一个 java 程序。

我想将我的 java 程序作为服务运行,所以我使用了 apache commons tool prunserv http://commons.apache.org/proper/commons-daemon/procrun.html

问题是我的 java 程序在其中运行一些 windows shell 命令,cmd \c netstat -rn但是当我将我的 java 程序作为服务启动并将 StartPath 指定为某个目录时。我的 java 程序中的命令失败并出现如下错误

我觉得 procrun 的 StartPath 参数覆盖了 C:\Windows\System32 等 PATH 变量,从而使 java 程序中的命令失败

--StartPath 启动映像可执行文件的工作路径。

我应该如何处理这种情况?

如果您需要更多详细信息,请告诉我。

提前感谢您的帮助。

0 投票
2 回答
1592 浏览

windows - 使用 apache commons 创建的 Windows 服务未正确启动,并且找不到 jvm.dll 的路径错误

我在 windows server 2019 build 1809 上运行 java 程序作为 windows 服务。

我正在使用 apache commons procrun 创建 Windows 服务。

这是我启动服务的配置

当我启动服务时,它失败并出现以下错误

注意 - jvm.dll 在配置和错误日志中也有正确的路径。

我的配置

apache commons procrun 是 64 位的

我提供的 JRE 也是 64 位的

Windows 服务器也是 64 位的

让我知道是否需要任何其他详细信息

提前致谢。

0 投票
0 回答
266 浏览

java - 无法在 jvm 模式下运行 windows 服务:错误 1067

我正在尝试使用 Apache Common Daemons 创建 Windows 服务,但我无法使其按预期工作。

使用jvm 模式它总是返回错误 1067,没有进一步的解释。这是procrun日志:

由于我需要 RXTX 并且我没有找到有效的 64 位实现(这是另一个故事),我被迫使用 32 位 jre:

所以我尝试了两个 procrun 版本:64 位和 32 位。没有区别。在这两种情况下,Windows 事件记录器都会报告没有有用信息的崩溃,至少对我来说不是。

下面是 procrun 配置/设置脚本:

jvm值设置为auto或一些无意义的乱码(比如说随机字符)也没有什么区别。但至少如果使用java模式(而不是jvm)它会启动。至少。Stop动作不起作用;我想它是在一个新的 jvm 会话中产生的,因为控制变量不受停止调用的影响。

下面是使用的 java 代码示例(由于我不需要 Linux 可移植性,因此直接取自 Apache 站点并进行了一些修改。

我正在(拼命地)寻找一种让它在 jvm 模式下工作的方法,或者在用户想要时正确停止服务的任何其他魔术。

0 投票
1 回答
72 浏览

tomcat - Tomcat作为服务修改服务参数值

我目前在 Windows 服务器上将 tomcat 作为服务,我想通过 cmd 更新服务参数。我正在使用以下命令来执行此操作:

这很好用,但我注意到的一件事是,如果该键已经存在,它不会更新该值。相反,它附加了另一个键/值对。如果密钥已经存在,有没有办法让这个更新值,否则附加?

在这里,我运行了两次命令,您可以看到它只是追加了。

在此处输入图像描述

0 投票
0 回答
13 浏览

windows - 使用 Windows 服务启动 Cassandra 时“创建 Java 失败”

我已经让 Cassandra 3.11.1 正常运行,没有出现 Java 问题。我一直在尝试按照安装指南中的建议使用 Apache Commons Daemon 将其设置为服务。我能够将其安装为服务,但是当我尝试通过 Windows 服务管理器启动该服务时,它失败了。日志内容如下:

通过 cassandra 配置,我指向 64 位守护进程 prunsrv 应用程序。

由于 cassandra 似乎可以自己完美地工作,所以它似乎是 prunsrv 的问题,但我不知道如何追踪它。我见过类似的问题,但似乎总是 32 位与 64 位的问题或 cassandra 的错误环境路径。这些对我来说似乎很好。

谢谢!