问题标签 [procrun]

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 投票
5 回答
2241 浏览

java - 如何使用 procrun 设置独立的 Java 应用程序以作为服务运行?

我正在尝试使用commons-daemon (procrun)设置独立的 java 服务

有谁知道在哪里获得 procrun 以及如何启动和运行它?

有没有其他选择?(我会使用 Java Service Wrapper 但我不能使用 GPL 许可代码)

0 投票
1 回答
6258 浏览

java - 带有 Procrun、StopMethod 问题的 Java Windows 服务

我的 Java 类包含以下方法:

public static void main(String[] argv) //启动服务

public static void stop() //停止服务

我正在使用来自Apache Commons Daemon的 Procrun 将 Java 类设置为 Windows 服务。当我尝试停止服务“[618 javajni.c] [error] Static method 'void main(String[])' in Class com/caphyon/service/JavaService not found”时出现错误。问题是我试图在服务关闭时调用停止方法,但它似乎用'void main(String [])'覆盖了StopMethod。以下是我在设置服务时使用的停止和启动参数:

prunsrv.exe //US//JavaService --StartClass=com.caphyon.service.JavaService --StartMode=jvm --StartPath="C:\JavaService"

prunsrv.exe //US//JavaService --StopClass=com.caphyon.service.JavaService --StopMode=jvm --StopPath="C:\JavaService" --StopMethod="void stop()"

如何设置关闭服务时将调用的 StopMethod prunsrv?

0 投票
1 回答
303 浏览

tomcat - Windows 上的 Tomcat

我在 Windows 2003 上安装了 Tomcat 6.0.18 作为服务。

我尝试设置 CATALINA_OPTS 环境变量,但它似乎被 Tomcat 忽略了。我需要改用 Tomcat 服务管理器 (procrun) 吗?

如果我将 Tomcat 安装为服务,它看不到环境变量但它只与 procrun 一起工作,这是否正常?

谢谢

0 投票
10 回答
37300 浏览

daemon - Apache commons 守护进程“创建 Java 失败”错误

我正在尝试使用 Apache commons 守护程序启动 Windows 服务。它适用于 Windows XP,但我试图在 Windows 7 x64 上运行它。它无法启动,我在日志中收到以下错误:

[2010-12-13 17:21:19] [info] Commons Daemon procrun (1.0.3.0) 开始 [2010-12-13 17:21:19] [info] 运行“NodeService”服务... [2010- 12-13 17:21:19] [信息] 启动服务... [2010-12-13 17:21:19] [错误] 创建 java 失败 [2010-12-13 17:21:19] [错误] ServiceStart 返回 1 [2010-12-13 17:21:19] [info] 运行服务完成。[2010-12-13 17:21:19] [info] Commons Daemon procrun 完成

为了确定,我设置了 JAVA_HOME 并将 java bin 添加到 PATH。我不确定为什么它没有启动,或者它是否与 x64 操作系统有关。它最初是为 32 位系统设计的。

0 投票
2 回答
5108 浏览

apache - 在安装路径中创建带有空格的服务

我正在使用 Apache 的 procrun 创建一个 Windows 服务,但我很难正确设置它。我正在使用批处理文件来执行 procrun 安装。我的问题是两方面的。

  1. 我无法创建名称中包含空格的服务。此示例取自 Apache,正在设置 prusrv 服务安装:

    我在 C:\Program Files\ 的某个地方安装了一个服务,它有一个空格。我需要 --Install 路径为 'C:\Program Files\prunsrv.exe' 才能正确指向正确的路径。如果我不使用引号将路径括起来:

    Windows 服务认为安装路径是:

    这是一个无效的位置。当我使用:

    Windows 服务认为安装路径是:

    ...这也是一个无效的位置(它实际上试图用引号执行该路径。)

    有谁知道如何正确安装路径中带有空格的 Windows 服务?

  2. 如果出现进一步的复杂情况,最好有更详细的文档。有没有人有任何关于 procrun 的附加文档或使用它的示例?到目前为止,我发现的资源列表是:

    看起来其他问题中使用的好资源不再可用: http ://blog.platinumsolutions.com/node/234

0 投票
3 回答
5321 浏览

java - 在 commons-daemon procrun & log4j 下 user.dir 系统属性如何解释?

我使用tomcat 5.5.33附带的procrun版本安装了一个java批处理:

在安装中,我指定(在其他 JVM 选项中):

我的 log4j.properties 配置包括:

但是,正在将 info.log 文件写入:

我检查了user.dir许多不同点的值,它总是C:\LOCAL\serverapps.

但是,log4j 的行为就像user.dir=C:\Windows\System32(或其他一些 subir C:\Windows)。

从我从 log4j 源代码(1.2.16)可以看出,FileAppender仅处理java.io.FileOutputStream声称使路径相对于该user.dir位置的 File 类。

我已经解决了这个问题,但我很好奇:有没有其他人遇到过这种行为?如果是这样,到底发生了什么?

0 投票
1 回答
545 浏览

java - procrun stopservices 方法未正确执行

我有一个奇怪的问题。我正在使用 Apache 服务来配置我的 Windows 服务。根据 Procrun,我的批处理文件应该配置了启动和停止服务。我的问题是当我启动我的应用程序时,启动服务被执行。但不是停止服务。我有点困惑。我已经为此工作了很长时间。没弄好。。有什么办法吗?

0 投票
1 回答
1903 浏览

java - 在 Commons Daemon 的 Procrun 中正确使用 DependsOn 选项

我有一个使用Commons Daemon的procrun作为 Windows 服务运行的 java 应用程序。它在 Windows XP SP3 上运行。

该应用程序依赖于ActiveMQ,我通过以下批处理脚本安装了该服务

但是,ActiveMQ 不会在管理工具\服务依赖项选项卡中显示为依赖项。

当我查看时HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\TestGenerator\Parameters,它的DependsOn键正确设置为 ActiveMQ,但DependsOnService键中 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\TestGenerator\Parameters没有列出 ActiveMQ。

我可以使用 SC.exe 设置依赖关系,但它不允许我指定上述所有其他参数。

谁能告诉我他们是否能够成功地将 DependsOn 与 Procrun 一起使用,如果是这样,我做错了什么?

0 投票
0 回答
3101 浏览

windows - 在 Windows Server 2008 上将 ActiveMQ 作为 64 位服务运行

我们之前使用 Tanuki java 服务包装器来运行 ActiveMQ。迁移到运行 Windows Server 2008 R2 的 64 位服务器后,我们无法将 ActiveMQ 安装为服务,除非我们为标准版或专业版的 java 服务包装器付费。

我读到其他人在 64 位架构上使用 Apache Commons Daemon 作为 ActiveMQ 的服务包装器http://blog.bigrocksoftware.com/2010/10/07/commons-daemon-procrun-as-a-java-service-包装器-for-activemq/。该站点上的说明允许我成功地将 ActiveMQ 作为服务安装在我们的服务器上,但是在启动服务时我们在事件日志中收到错误。我在页面底部评论了这篇文章

我能够使用本文中的说明将 ActiveMQ 安装为服务,但是当我通过服务控制面板启动它时,我得到 Windows 无法在本地计算机上启动 ActiveMQ。有关详细信息,请查看系统事件日志。当我检查事件日志时,我看到 ActiveMQ 服务因服务特定错误而终止操作成功完成。我认为这可能与我的架构有关。我正在运行 Windows server 2008 R2,我的处理器是 64 位 Intel Xeon。我没有看到 commons-daemon 包中包含该架构。当我安装时,我使用了通用的“prunsrv.exe”文件,而不是 amd64/prunsrv.exe 或 ia64/prunsrv.exe——我在安装过程中尝试使用这些 exe 文件时收到错误,并且只能使用通用 prunsrv.exe 安装。有没有办法让它与我的架构一起使用?还是我错过了什么?

我想知道是否有人在此列表中对我有任何建议?也许我在通过 procrun 安装时错过了一些东西,或者其他适用于 64 位 Windows 的服务包装器。任何意见表示赞赏。

谢谢。

编辑 011312:

感谢您的答复。activemq-daemon 日志列出了这些错误

我将这些错误解释为可能是我通过 procrun 作为服务安装 activemq 的选项之一不正确 - 我确实验证了 jvm.dll 确实存在于我的文件系统中的该位置。我使用博客文章中列出的选项作为模型安装了带有这些选项的 procrun

ActiveMQ.exe //IS//ActiveMQ --DisplayName="ActiveMQ" --Description="ActiveMQ Java Messaging Server" --Startup=auto --LogPath=D:\apache-activemq-5.5.0-bin\apache- activemq-5.5.0-bin\apache-activemq-5.5.0\data --LogLevel=INFO --LogPrefix=activemq-daemon --StdOutput=auto --StdError=auto --StartPath=D:\apache-activemq- 5.5.0-bin\apache-activemq-5.5.0-bin\apache-activemq-5.5.0 --StartClass=org.apache.activemq.console.Main --StartMethod=main --StartParams=start --StartMode= jvm --StopPath=D:\apache-activemq-5.5.0-bin\apache-activemq-5.5.0-bin\apache-activemq-5.5.0 --StopClass=org.apache.activemq.console.Main -- StopMethod=main --StopParams=shutdown --StopMode=jvm --Jvm=C:\Program Files\Java\jdk1.6.0_29\jre\bin\server\jvm.dll --Classpath=D:\apache-activemq- 5.5.0-bin\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\运行。jar --JvmOptions=-Xmx512M ++JvmOptions=-Dorg.apache.activemq.UseDedicatedTaskRunner=true ++JvmOptions=-Djava.util.logging.config.file=logging.properties++JvmOptions=-Dactivemq.home=D: \apache-activemq-5.5.0-bin\apache-activemq-5.5.0-bin\apache-activemq-5.5.0 ++JvmOptions=-Dactivemq.base=C:\Java\apache-activemq-5.4.1 + +JvmOptions=-Dactivemq.classpath=D:\apache-activemq-5.5.0-bin\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\conf ++JvmOptions=-Dcom.sun.management .jmxremote.port=9004 ++JvmOptions=-Dcom.sun.management.jmxremote.authenticate=false ++JvmOptions=-Dcom.sun.management.jmxremote.ssl=false0 ++JvmOptions=-Dactivemq.base=C:\Java\apache-activemq-5.4.1 ++JvmOptions=-Dactivemq.classpath=D:\apache-activemq-5.5.0-bin\apache-activemq-5.5。 0-bin\apache-activemq-5.5.0\conf ++JvmOptions=-Dcom.sun.management.jmxremote.port=9004 ++JvmOptions=-Dcom.sun.management.jmxremote.authenticate=false ++JvmOptions=- Dcom.sun.management.jmxremote.ssl=false0 ++JvmOptions=-Dactivemq.base=C:\Java\apache-activemq-5.4.1 ++JvmOptions=-Dactivemq.classpath=D:\apache-activemq-5.5.0-bin\apache-activemq-5.5。 0-bin\apache-activemq-5.5.0\conf ++JvmOptions=-Dcom.sun.management.jmxremote.port=9004 ++JvmOptions=-Dcom.sun.management.jmxremote.authenticate=false ++JvmOptions=- Dcom.sun.management.jmxremote.ssl=false

0 投票
4 回答
8785 浏览

java - 使用 Procrun 安装的 Windows 服务在 //TS 模式下工作,但不会作为 Windows 服务启动,说它“启动然后停止”

我通过运行以下命令将标准可执行 jar 文件安装为 Windows 服务:

我现在可以通过运行以下命令(我使用的是 Java 1.6)在控制台模式下正常运行我的程序:

当我尝试通过标准 Windows 服务接口启动服务时,我收到以下错误消息:

本地计算机上的 MyService 服务启动然后停止。如果某些服务没有被其他服务或程序使用,它们会自动停止。

当我尝试以这种方式启动服务时,我的应用程序的日志文件中没有输出。Window 的事件日志(Windows 7 64 位)中也没有输出。我可以做些什么来尝试找出为什么此服务无法运行?