问题标签 [java-service-wrapper]

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 回答
3833 浏览

java - java服务包装父进程挂起

我正在运行 Tanuki Wrapper(并且已经运行了很长时间)。在生产中,它运行良好,但在那几周内,我收到报告称包装器进程(C 代码)已挂起并且不会死亡,这会导致生产问题。

当我收到警报并查看时,我看到的是:

1) 几个小时前,子 java 进程被 SIGKILL/9 杀死

STATUS | wrapper | 2016/02/08 03:49:20 | JVM received a signal SIGKILL (9).

2)然后我看到wrapper.sh stop我自定义构建的内部观察程序重置它时出现问题,但这正在进入一个无限循环,如下所述:代码链接

3)然后我登录到盒子并找到包装进程pid(记住JVM早就死了)并发出直接kill $pid,然后等待......什么都没有。可能的代码?

4)最后放弃并发出 kill -9 $pid 并最终杀死它,一切都清理干净并活着回来。

问题:

如何对 kill $pid (SIGTERM/15) 不起作用的应用程序进行故障排除?这在YEARS中效果很好,并且仍然在许多其他过程中,但在少数几个过程中它失败了。

当然,关于 Tanuki 的大多数问题和文档都是关于如何操作/询问子 JVM,但我实际上看到了我认为是 C 代码的问题,我不确定如何询问挂起的 PID放弃秘密的C代码。也许里面的东西/proc/$pid可以告诉我它挂在什么上面?

帮助我欧比旺克诺比,你唯一的希望......

0 投票
2 回答
2073 浏览

java - 在 Spring Boot 中使用服务包装器而不是运行 jar 有什么好处?

Spring 文档在http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html中提到了服务包装器。

在生产中,我们可以使用java -jar [x].jar它来运行我们的应用程序,这更容易。

使用服务包装器有哪些优势?

0 投票
1 回答
186 浏览

java - 与 Full GC 期间的 'user' 和 'sys' 相比,'PSPermGen' 和 'real' 的持续时间更长

我在生产中遇到了一个奇怪的问题,经过 5 年多的运营,只发生过一次。我们发现 PSPermGen 和“真实”持续时间远高于用户+系统时间。2016 年 2 月 4 日,PSPermGen 耗时 38.96 秒,而之前的运行时间为 0.2-0.3 秒,并且没有释放内存。当 user+sys 为 0.3-0.4 秒时,实时耗时 40 秒,与之前的运行相比异常高。Full GC 没有频繁发生,我也没有观察到任何与 GC 相关的错误。在整个持续时间内,CPU 使用率 < 1%,内存使用率 < 20%。

信息 | 虚拟机 1 | 2016/02/04 02:56:56 | [GC [PSYoungGen: 88312K->936K(86144K)] 261016K->174219K(260928K), 0.4070215 秒] [时间: user=0.75 sys=0.00, real=0.42 secs] 信息 | 虚拟机 1 | 2016/02/04 02:57:08 | [GC 信息 | 虚拟机 1 | 2016/02/04 02:57:11 | [PSYoungGen: 85703K->96K(102400K)] 258985K->175019K(278784K), 3.1902546 secs] [Times: user=7.14 sys=0.05, real=3.18 secs] INFO | 虚拟机 1 | 2016/02/04 02:57:13 | [GC [PSYoungGen: 102368K->755K(123520K)] 277291K->175700K(299904K), 0.0266474 秒] [时间: user=0.00 sys=0.00, real=0.02 secs] INFO | 虚拟机 1 | 2016/02/04 02:57:20 | [GC [PSYoungGen: 123507K->128K(144768K)​​] 298452K->175419K(321152K), 0.0021357 秒] [时间: user=0.01 sys=0.01, real=0.02 secs] INFO | 虚拟机 1 | 2016/02/04 02:57:28 | [GC [PSYoungGen: 143616K-> 977K(144704K)] 318907K->176319K(321088K),0.0035773 秒] [时间:用户=0.00 系统=0.00,实际=0.00 秒] 信息 | 虚拟机 1 | 2016/02/04 02:57:28 | [完整 GC 状态 | 包装 | 2016/02/04 02:58:03 | JVM 出现挂起:等待来自 JVM 的信号超时。重新启动 JVM。信息 | 虚拟机 1 | 2016/02/04 02:58:08 | [PSYoungGen: 977K->0K(144704K)] [PSOldGen: 175341K->35127K(174784K)] 176319K->35127K(319488K) [PSPermGen: 38992K->38992K(65536K) ], 38.9595115 secs] [Times: user=0.33 sys=0.14, real=40.07 secs ]

执行的最后几个完整 GC 是:

信息 | 虚拟机 1 | 2016/02/02 12:59:49 | [全 GC [PSYoungGen: 433K->0K(98944K)] [PSOldGen: 176749K->38591K(174784K)] 177183K->38591K(273728K) [PSPermGen: 39380K->39380K(65536K)], 0.2982459Ts] :用户=0.30 系统=0.00,真实=0.30 秒] 21189 信息 | 虚拟机 1 | 2016/02/03 03:15:16 | [完整 GC [PSYoungGen: 2873K->0K(125696K)] [PSOldGen: 171318K->33804K(174784K)] 174191K->33804K(300480K) [PSPermGen: 39940K->38366K(65536K)], 0.331780T 秒] :用户=0.34 系统=0.00,真实=0.34 秒] 47151 信息 | 虚拟机 1 | 2016/02/03 12:16:51 | [Full GC [PSYoungGen: 1406K->0K(171776K)] [PSOldGen: 174936K->38003K(174784K)] 176342K->38003K(346560K) [PSPermGen: 38642K->38642K(65536K)], 0.298882T 秒] : user=0.30 sys=0.00, real=0.30 secs]

我在大约 8GB 和 4 个 CPU 的 Windows 2003 x86 上运行 Java 6 update 45。磁盘空间绰绰有余。我们将 JVM 配置为 256 MB 的初始堆内存和 512 MB 的最大内存。该应用程序通过 Tanuki Wrapper 作为 Windows 服务运行。

目前看来,长时间的 GC 暂停似乎不是由于内存、CPU、磁盘空间等原因。我在这里缺少什么?

0 投票
2 回答
694 浏览

process - 每 3 分钟运行一次 java 类

我正在尝试编写一个每 3 分钟运行一次的简单 Java 程序。我正在使用 Timer 和 TimerTask 来调用这些类。

我实现winsw并创建了运行 bat 文件的服务,而后者又运行 java:

接收任务.bat

接收器任务.xml

我在当前的实现中遇到了两个问题:

  1. 无论当前java是否完成,Timer都会在3分钟后启动另一个进程。
  2. 停止服务(winsw - java 服务包装器)不会停止运行 java.exe 或 cmd.exe 的进程

我尝试添加销毁方法来杀死进程,但这真的是要走的路吗?

有没有人有什么建议?

0 投票
1 回答
2390 浏览

mule - 在 Windows 64 位机器上运行 Mule Standalone Community Edition

我目前在运行 mule-standalone 时遇到问题 - 下面是 Windows 64 位机器上的 CE-3.7.0 问题。我点击了这里的链接

更新 - 我正在使用 Mule 3.7.0 CE 运行时。mule 项目使用 JRE 8.0。

0 投票
2 回答
1566 浏览

agent - TeamCity Agents 64 位无法启动

我正在尝试运行 64 位版本的 TeamCity (9.1.1) 代理。我可以安装该服务,但是一旦我启动它,我会在 wrapper.log 中得到以下内容:

我找不到任何其他提供有关此信息的日志条目。

有什么建议么?我实际上只在网上找到了两个类似的帖子,这让我认为它与 Java 服务包装器的关系比 TeamCity 更相关......

(更新:执行特定于 64 位版本的已构建程序集的测试需要 64 位版本)

0 投票
1 回答
1043 浏览

java - 为作为 Windows 服务运行的 Java 应用程序创建安装程序

我需要为 java 应用程序创建安装程序。该应用程序应用作本机 Windows 服务。我见过以下可用于将 Java 应用程序作为 Windows 服务执行的项目。

  1. Java 服务包装器

  2. 亚杰斯....

问题: 因为我必须在 20 多个系统上部署服务(可以随着时间的推移而增加)。所以我认为我足以创建安装程序并分发安装程序文件。

那么我如何为作为 Windows 服务运行的 java 应用程序创建安装程序文件?

0 投票
1 回答
69 浏览

selenium - Tanuki Service Wrapper 显示访问

我有一个简单的 Java 应用程序,它使用为我加载chromedriver的 Tanuki Service Wrapper。当我以拥有应用程序和 VNC 服务器的用户身份执行操作时,一切正常。./myapp console

但是,在RUN_AS_USERTanuki 设置中设置并在 Ubuntu 16.04DISPLAY中设置变量/etc/environment和所有配置文件后,我的 Java 应用程序无法访问显示。

我使用这些说明在 Ubuntu 16.04 上安装了 VNC 。

我可以在运行后以任何用户身份运行 xeyes、xterm 等,xhost +并确保该命令在 vncserver 启动时运行。

发生的情况是,在我最终超时之前,我遇到了以下日志消息:

虚拟机 1 | 在端口 32655 上启动 ChromeDriver 2.25.426924 (649f9b868f6783ec9de71c123212b908bf3b232e)

虚拟机 1 | 只允许本地连接。

我还尝试编辑/etc/chromium-browser/default文件以在选项中包含“--display:1”规范,CHROMIUM_FLAGS正如其他帖子中所建议的那样,但没有运气。

我看到的另一个选项是在要添加的 Java 代码中添加,但这不起作用:

有什么建议么?

0 投票
0 回答
37 浏览

java - 如何为 Cirillic 选择 UTF-8 编码来保存日志 Java Wrapper tanuki?

我在 Windows 2012 R2 中通过 Java Service Wrapper Standard Edition 3.5.32-st 安装了服务。

如何为 Cirillic 选择 UTF-8 编码来保存日志 Java Wrapper tanuki?

我已经尝试取消注释该行

并添加

然而,结果并不好。

0 投票
2 回答
1202 浏览

java - Java 应用程序:与系统托盘图标交互的 Windows 服务

我正在使用 Java Wrapper Service 创建 Windows 服务,并且我想通过系统托盘图标与用户交互。

根据图书馆的说法,解决方案是创建一个“交互式服务”,但 Microsoft Windows 不建议这样做。

https://wrapper.tanukisoftware.com/doc/english/prop-ntservice-interactive.html

https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms683502(v=vs.85).aspx

我的托盘图标将是“GUI 部分”,服务包装器将是“引擎部分”。在这两个部分之间进行通信的最佳方式是什么?