问题标签 [jsvc]
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.
c - waitpid - 在什么情况下 WIFEXITED 和 WIFSIGNALED 都会是假的?
我正在使用Apache commons-daemon 的 jsvc在 Linux 上将 Java 程序作为守护程序运行。
守护程序“随机”崩溃,仅显示消息:
这是jsvc
(第 1142 行)中jsvc-unix.c
代码的相关部分:
在哪种情况下WIFEXITED
,WIFSIGNALED
两者都可以是假的?是否保证在这种情况下进程没有被杀死(被进程或 Linux OOM 杀手)?
java - Jsvc apache守护进程没有绑定低于1024的端口与root权限
我正在尝试以 root 身份执行一个监听端口 636 的守护进程,但我得到了 java.net.BindException。操作系统是 CentOS 7。我的脚本中是否缺少某些内容?
这是我启动/停止守护进程的脚本
java - 在无头 (RepaintManager.currentManager) 中调用 new JPanel() 时的 NPE
我正在运行一个无头 linux 盒子,openjdk-8-jdk-armhf
当我运行我的应用程序时,这条线
引发返回到 的 NullPointerException RepaintManager.currentManager(RepaintManager.java:262)
,如下所示:
完整的跟踪如下:
jsvc
我可以通过和java
命令重现此错误。
javascript - 嵌入:意外的令牌。做出反应。
错误:browser.min.js:41 Uncaught SyntaxError: embedded: Unexpected token (4:18)
我无法理解((
logging - 在 Java 应用程序中捕获 RuntimeExceptions 并通过电子邮件发送它们
我正在使用这样的命令在 Linux 服务器上启动我的应用程序
我log4j
用于登录我的应用程序,它有自己的配置,log4j.properties
其中描述位于myapp.jar
.
我希望能够捕获应用程序中发生的任何异常并通过电子邮件将其发送给我。我已经为此目的进行了配置org.apache.log4j.net.SMTPAppender
。log4j.properties
但目前RuntimeException
,likeNullPointerException
只是打印到重定向到的,stderr
而不应用格式化模式。jsvc
error.log
log4j
是否有可能或者我应该在没有jsvc
包装器的情况下运行应用程序
还是有更好的解决方案?
java - jsvc & Gradle - 没有控制台输出,Gradle 守护进程崩溃
我正在尝试在我的本地机器上使用 IntelliJ IDEA 测试我的 Java 应用程序(它旨在用作守护程序,因此使用jsvc)。
出于测试目的,我希望将 stdout 和 stderr 都输出到控制台。根据 jsvc 帮助站点(jsvc --help)设置-outfile '&2'
,-errfile '&1'
应该将 stdout 和 stderr 相互重定向(根据我的理解)。
在普通 shell(设置了这两个选项)中,守护进程启动并向控制台输出一些内容,但是当使用Gradle Exec 任务和完全相同的命令时,Gradle 守护进程崩溃并输出到文件“&2”和“&1” .
任务配置:
Gradle 守护进程崩溃(gradle -d run):
任何帮助,将不胜感激 :)
java - IntelliJ IDEA 中的自定义终止脚本以停止 jsvc
我正在尝试调试我的 Java 应用程序,它应该作为守护进程运行,因此由jsvc启动。目前,我在 Gradle 的帮助下将它作为 IDEA 运行/调试配置启动。
问题是 IDEA(单击“终止”按钮时)尝试终止 Gradle 构建,然后(大约十秒钟后)失败并显示错误消息
我是否能够以某种方式向 IDEA 提供自定义终止脚本?
java - 带有 procrun 和 CDI/WELD 的 JAVA Win 服务
我正在使用 procrun ( Apache JSVC ) 创建一个操作系统后台服务。我想使用WELD作为容器。
应用程序本身(gradle run)工作正常。我可以看到所需的行为。但是当我尝试将它作为 Windows 服务运行时,我会看到以下错误:
看起来 WELD 丢失了它的上下文和类路径位置。但我不知道为什么以及如何解决它。
你能帮我吗?
如果您想查看代码,可以在这里查看: https ://github.com/sdudziak/logreader
编辑:我在 Linux 操作系统下创建了一个 JAR 文件来检查这是否只是一个 Win 问题。事实并非如此。我在运行时遇到了同样的问题java -jar log-reader-all-1.0.jar
:
看起来这不是与操作系统相关的问题,而是 gradle-weld 之间的更多问题:就像@siliarus 写的那样。
java - 无需 apache-commons-daemon jar 直接实现 JSVC
根据 apache commons 文档(https://commons.apache.org/proper/commons-daemon/jsvc.html),我应该能够直接使用 jsvc 将我的应用程序作为守护程序运行,而无需实现 Daemon 类:
直接地
编写一个实现以下方法的类(MyClass):
- void init(String[] arguments):这里打开配置文件,创建跟踪文件,创建ServerSockets,Threads
- void start():启动线程,接受传入连接
- void stop():通知线程终止run(),关闭ServerSockets
- void destroy(): 销毁在 init() 中创建的任何对象
将其存储在 jarfile 中并按上述方式使用:
./jsvc -cp my.jar MyClass
MyClass 实现了上述方法,并没有实现 Daemon 类。但是,如果我尝试像上面那样调用 jsvc 而不在我的类路径中包含 commons-daemon.jar,
我收到以下错误:
如果我将它包含在类路径中,一切正常。,即
我对文档的理解是,如果我不使用该库中的任何内容,我不需要包含 commons-daemon.jar,而只需在我的类上直接调用 jsvc 并实现所需的方法。这是不正确的吗?我不想在我的包裹中捆绑任何不必要的罐子。
macos - MacOS 和 JSVC:SCARD_E_NO_SERVICE:智能卡资源管理器未运行
我有一个需要在 MacOS Sierra 中作为守护程序运行的 JAR 文件,我决定为此使用 Apache Commons Daemon 和 JSVC。我知道为此目的可能并不真正需要 JSVC(它似乎只允许在低范围内打开端口)并且可以通过系统/启动实现相同的目的,因此任何有或没有 JSVC 的帮助/解决方案都值得赞赏。
这就是我从命令行运行 jar 的方式,它可以正常工作。它使用端口 8085 打开一个 WebSocket 连接并等待传入连接。然后,它连接到智能卡读卡器并从卡中获取一些数据。
现在,当我尝试使用 Apache Commons Daemon 接口和 JSVC 运行同一个 jar 时,该 jar 正常启动并开始在端口 8085 中侦听。
问题是,由于某种原因,尝试连接到智能卡读卡器时出现异常。
使用 java -jar 运行时 jar 可以正常工作的事实让我相信问题出在配置上。关于为什么使用 JSVC 无法使用该服务的任何想法?
提前致谢。