标签: apache-commons-daemon

使用JSVC守护Java应用程序

我正在尝试使用Apache Commons Daemon使用Daemon接口来守护我的应用程序.它自己的Java应用程序只是写入粗壮的东西.

我编译了jsvc:http://people.apache.org/~mturk/daemon-1.0.10/

(甚至尝试过最新版本:http://people.apache.org/~mturk/daemon-1.0.12/)

并写了这个基本脚本.

do_exec()
{
    $EXEC \
        -home "$JAVA_HOME" \
        -cp $CLASS_PATH \
        -outfile $LOG_OUT \
        -errfile $LOG_ERR \
        -pidfile $PID \
        $1 \
        $MAIN_CLASS
    echo "result: $?"
}

case "$1" in
    start)
            do_exec
            ;;
    stop)
            do_exec "-stop"
            ;;
    restart)
            do_exec "-stop"
            do_exec
            ;;
    *)
            echo "usage: daemon {start|stop|restart}" >&2
            exit 3
            ;;
esac
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试在守护程序未运行时停止守护程序时,我会得到响应代码255.真是棒极了.

但是当我尝试启动守护进程时它已经运行我得到响应代码0.但在我的错误文件中我发现:

Still running according to PID file /tmp/deamon.pid, PID is …
Run Code Online (Sandbox Code Playgroud)

java jsvc apache-commons-daemon

5
推荐指数
1
解决办法
9299
查看次数

在jsvc类路径中使用多个jar

我正在尝试使用jsvc将Java应用程序作为Linux服务运行.我找到了如何用jsvc将java程序转换为守护进程?它能够让我大部分时间,但我仍然在努力让类路径得到解决.

我向stderr收到以下错误:

19/04/2013 10:43:18 12233 jsvc.exec错误:找不到守护进程加载器org/apache/commons/daemon/support/DaemonLoader

19/04/2013 10:43:18 12231 jsvc.exec错误:服务退出,返回值为1

似乎运行时无法找到commons-daemon.jar.

我的应用程序是结构化的,以便应用程序本身在一个jar文件中,具有依赖项,包括lib目录中的commons-daemon.

  • daemon-script.sh
  • myapp.jar
  • LIB /公地daemon.jar
  • LIB /另一罐

这是我的daemon-script.sh的相关部分:

LIB_DIR = $(PWD)/ lib目录/*

CLASS_PATH = $(PWD)/myapp.jar

$ EXEC -home $ JAVA_EXEC -cp $ CLASS_PATH:$ LIB_DIR -outfile $ LOG_OUT -errfile $ LOG_ERR -pidfile $ PID $ 1 $ CLASS

我尝试了很多变化:相对路径,特别是引用lib/commons-daemon.jar,没有通配符等.有没有人知道如何正常工作?

此外,myapp.jar是一个自执行jar (主要用于测试目的,是的,我仍然需要它作为服务运行),因此manifest.mf包含Class-Path和Main-Class属性.有没有办法让jsvc识别清单?

java daemon jsvc apache-commons-daemon

5
推荐指数
1
解决办法
2192
查看次数

如果强制关闭,可以使用Apache Daemon重启Java应用程序吗?

我正在寻找Apache守护进程来帮助我使用Java应用程序,我只想获得一些关于可能性的想法/提示.

我想创建一个简化的应用程序,显示某种故障保护能力.应用程序将按顺序执行4个步骤(想象它在每个步骤中打印出一个简单的文本文件只是一个字母,如步骤1是"A",步骤2是"B"等),我想能够强制关闭JVM,然后让它自动重启java应用程序并恢复打印输出(想象它就像一个小孩拉动电视上的插头,它自己再次打开).

这可以通过Apache Daemon做到吗?如果是这样,我将如何实现自动化?我是否需要在操作系统级别附加一些第三个程序(就像一个本身监视流程的简单C程序?).

在这个阶段,我只是在寻找指针,因为我意识到我要做的事情并不是很清楚.我更喜欢Windows,但我也有Mac,如果更好的话,我会开放使用Mac(我知道Linux有一些独特的工具/能力).任何提示/想法赞赏.

到目前为止,我已经尝试在这里使用本教程寻求帮​​助,这本来很有用,但并不像我需要的那样彻底.

java apache-commons-daemon

5
推荐指数
1
解决办法
675
查看次数

Spring Boot 应用程序作为守护进程服务?

我是一个刚开始学习 Spring Boot 的新人。我觉得它对于轻松开发 Java 应用程序来说确实是非常有帮助和很棒的工具。

另一方面,我正在考虑开发一个守护程序服务,它通过 Kafka Consumer API 从 Apache Kafka 收集数据/消息,并对检索到的数据进行一些处理。当然,这整个过程是定期完成的。

因此,我一直使用 Apache Commons Daemon 将应用程序开发为守护进程。然而,我现在想使用 Spring Boot 来代替它。

是否可以通过Spring Boot实现这样的服务应用?如果可能的话,请告诉我如何实施。提前致谢!

daemon apache-kafka apache-commons-daemon spring-boot

5
推荐指数
1
解决办法
7478
查看次数

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

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

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

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

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

prunsrv具有一个“ JvmOptions9 ”参数,这可能暗示可能支持此方案,但我不确定。

jlink apache-commons-daemon java-9 prunsrv java-module

5
推荐指数
1
解决办法
75
查看次数

您将如何使用Apache Daemon运行Java应用程序(在Windows中)?

我下载了Apache Daemon,但是我在运行它时遇到了一些问题.

在命令行中,我正在尝试提取JAR文件(文件目录.如下所示):

在此输入图像描述

我这样做,通过使用此命令(在CMD中):

jar -xf commons-daemon-1.0.15.jar
Run Code Online (Sandbox Code Playgroud)

但这没有做任何事情.我一直在寻找启动守护进程工具的方法,以便Windows可以开始运行Java服务.

任何提示都有帮助,谢谢

java apache-commons-daemon

0
推荐指数
1
解决办法
2375
查看次数