问题标签 [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.
java - 使用 procrun 检查服务是否正在运行
我正在使用prunsrv创建 Windows 服务。我想问你是否可以查询一个进程的状态(如果它正在运行,是否已停止)或者一个进程是否存在。我还想用 Java 程序读取 pid 文件的内容。
java - 在 Linux 机器上配置 procrun?
我对 procrun 很陌生。请问,任何人都可以建议如何使Java应用程序作为Windows服务运行吗?如果可能,一步一步来。
java - Apache Procrun - 停止命令不起作用
我遇到了“Apache Deamons Procrun”软件的问题。start 命令效果很好,可以启动程序。停止命令总是说“无法找到或加载主类”,除了停止命令启动的类与启动程序的类相同。停止命令所做的只是将控件放入程序正在监视的文件夹中。
procrun 是否足够聪明,可以知道如果 java 进程结束,它也会关闭?我有时也有一些问题。
谢谢,
java - apache procrun 无法启动服务
编辑
我正在使用 loaderDeamon 接口来安装和运行 Java 应用程序作为 Windows 服务。为此,Apache 的 procrun 服务工具(与 tomcat 安装的工具相同)处理服务的安装和执行。
最近通过服务管理器执行服务时,服务声称正在运行,但没有响应。没有写入日志,应用程序的客户端无法通信。这让我觉得该服务实际上并没有运行。
我试图通过 procrun 通过 //TS 命令启动服务,如下所述:http://commons.apache.org/daemon/procrun.html,即使我们等待,它也会挂起并且没有启动服务到 24 小时。procrun 本身会生成我们捕获的日志。完整的日志包含在下面。我有几个关于日志的问题,希望能弄清楚服务无法启动的原因。
- 首先,“Java Worker thread finished... start with status=6”在线程终止时表示什么?
- 其次,当我们到达“等待所有线程退出”行时,哪些线程仍在执行?
- 第三,日志中是否还有其他在启动服务时可能出现问题的突出内容?
该服务过去执行成功,最近升级到 java 版本 1.7.5 后失败。我恢复到 java 1.7.3 生效,所以我相信 jvm 的变化是无关的,尽管值得一提。
我采取的步骤没有效果:
- 使用调试在控制台上运行服务
- 指定 java SE 版本 1.7.5、1.7.3
- 只使用默认的 jvm 1.6.30,不指定它
- 广泛的谷歌工作
任何帮助或想法表示赞赏!谢谢!
log4j - Procrun 和 log4 配置
我正在procrun
为我的 java 进程启动 Windows 服务。我可以启动服务,但我设置的 log4j 配置似乎不起作用。这是我在创建的stderr
文件中看到的procrun
:
这是我指定的用于安装服务的命令:
%INSTALL_SERVICE_CMD% //IS//SERVICEAGENT --DisplayName="DispName" --Install=%SERVICE_EXE_HOME%\prunsrv.exe --LogPath=%INSTALLER_HOME% --LogLevel=Info --StdOutput=auto --StdError=auto --StartMode=Java --StopMode=Java --Jvm=auto --Startup=auto --JvmMx=512 ++JvmOptions=-XX:MaxPermSize=128m --StartPath=%START_CLASS_PATH%\ --Classpath=%CLASSPATH%;MyJar.jar --StartClass=com.jar.aa.MainEntry --StopClass=com.jar.aa.ExitEntry ++StopParams=--stop ++JvmOptions=-Dfile.encoding=UTF8 ++JvmOptions=-Dlog4j.configuration=log4j.properties ++JvmOptions=-Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
我将我的 log4j 属性放置在与此安装脚本相同的目录中。
谁能告诉我我可能会错过什么?任何帮助将不胜感激。
谢谢,
克
java - Apache daemons procrun prunsrv Windows exe 模式不工作
几年来,我们一直在使用 Procrun 将 Java 应用程序转变为服务(并且没有问题)。
我们还有一些作为服务运行的原生 Windows 可执行文件。到目前为止,我们使用 Windows Management Instrumentation (WMI) 来定义这些,但我现在正尝试将 Procrun 用于这些本机 exe ......不幸的是,我无法启动服务(或至少保持跑步)。
服务似乎正确创建;Prunsrvlog/stdout/stderr 不包含错误;Apache/procrun 和 system/Services 下的注册表项似乎都可以创建;我可以使用 Windows 服务小程序或 Prunmgr 监视器查看服务;但是...服务从未显示为已启动。当我尝试从 Prunmgr 手动启动服务时,我收到“...正在尝试启动”弹出窗口几秒钟,但服务仍然停止。
当我尝试从 Win Services 小程序启动它时,我还得到一个弹出窗口:服务启动和停止。如果不使用某些服务会自动停止”。
我自己找到了大部分解决方案:
我不知何故弄乱了我的本机测试程序,它总是与 Windows 服务控制器交互......使用 Procrun 时,您的本机程序不得(取消)向 Windows 服务控制器注册自己,因为这是由 Procrun 自己处理的。更正我的测试服务后,我可以使用 Procrun 服务启动和停止它。
...但仍有几个问题:
- 我发现一些命中说明
serviceName
不能包含空格,但我也(痛苦地)发现displayName
在将 Procrun 用于本机可执行文件时不能包含空格。如果displayName
包含空格, Windows 服务小程序中的“属性”页面将拒绝打开。我不知道这可能是什么原因,这在使用 Java 应用程序时不适用。 - 即使您将服务设置为自动启动(例如 via
set PR_STARTUP=auto
),“本机”服务也不会在您启动时启动install
,它需要明确的启动命令(例如bin\TestService start
)(但“本机”服务将在每次重新启动时自动启动) ...这在包装 Java 应用程序时再次不适用...这些在安装时自动启动。
最后一点建议:当使用set PR_xxx=
格式来定义服务的参数时,通常不能引用包含空格的值......对于一些更有经验的人来说这可能不言而喻,但我遭受了相当多的痛苦这个 :-(
这篇长文的其余部分主要是为了历史(或罕见的感兴趣的个人)
定义服务的代码:
正如我后来发现的那样,不要忘记添加:
commons-daemon.log 中的结果:
TestService stdout/stderr 都只包含一行“stdout/stderr initialised”
ProcRun 下的注册表项:
在 SYSTEM\Services 下:
我已经尝试了几乎所有我能想到的东西,但我无法让服务运行:-(
还有两个评论:
1.我最初在DisplayName中有空格。直到我用下划线替换它们之前,我无法在 Windows 服务小程序中打开“属性”页面!!!
2. 本机 exe 具有向Windows 服务控制器注册的代码(主要是在 Windows 关闭时启用干净终止)。如果名称为可执行文件以“ d.exe ”结尾(不区分大小写)。我尝试对 StartImage 使用两种形式(即 TPShmSrvD.exe 和 TPShmSrv.exe),但无济于事......
任何帮助将不胜感激,
尤尔
java - JVisualVM 无法使用 --openpid 参数连接到进程
我有一个作为 win 服务运行的应用程序(使用Apache-Procrun)。我想用 JVisualVM 监控那个应用程序。我使用命令行参数--openpid <PID>
没有成功,具有讽刺意味的是,旧的 JConsole 设法连接到该应用程序。
我还检查了 JVisualVM-故障排除指南%TMP%\hsperfdata_username
中描述的 -Directory 的所有问题。一切都很好。
如何让 JVisualVM 监控我的应用程序?
java - 使用 Apache procrun 接收 NoClassDefFoundError(Eclipse 生成的 jar)但在命令行上运行良好
我已将我的应用程序从 Eclipse 导出为一个大包,因此它使用 Eclipse 加载程序。我已经使用 install.bat 文件通过 procrun 安装了它,最重要的几行如下所示:
显然还有更多,并且服务确实运行。在 ECGIServer.jar 文件中,这是 Manifest 文件:
有更多的 jar 可以列出,但要写的太多了。无论如何,当我在命令行运行它(ECGIServer.jar)时,它工作得很好。当我将它作为服务运行时,它会一直运行,直到我尝试创建 LunaProvider 的实例。一旦应用程序创建了 LunaProvider 的实例,我得到:
如您所见,LunaProvider 是一个 ThridParty 库,它刚刚从我的 Eclipse 设置中引入。
java - 不支持的major.minor版本java作为带有procrun的windows服务
我正在尝试将我的 java 应用程序作为 Windows 服务运行。我按照这里所说的做了:http: //web.archive.org/web/20090228071059/http ://blog.platinumsolutions.com/node/234
和http://commons.apache.org/daemon/procrun.html
我得到了这个例外: