gpt4 book ai didi

java - 使用 jsvc 对 java 程序进行守护进程

转载 作者:行者123 更新时间:2023-12-01 06:24:30 27 4
gpt4 key购买 nike

我正在尝试使用 JSVC 将 java 程序作为守护进程运行。这是我使用过的简单代码:

package daemonexample;
public class DaemonExample implements Daemon {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}

@Override
public void init(DaemonContext dc) throws DaemonInitException, Exception {
System.out.println("initializing ...");
}

@Override
public void start() throws Exception {
System.out.println("starting ...");
}

@Override
public void stop() throws Exception {
System.out.println("stopping ...");
}

@Override
public void destroy() {
System.out.println("done.");
}

}

命令:jsvc -debug -home $JAVA_HOME -cp/path/to/commons-daemon.jar:/path/to/DaemonExample.jar -user coder -outfile/tmp/example.out -errfile/tmp/example.err -pidfile/tmp/example.pid daemonexample.DaemonExample

当我运行此命令时,我得到:“将 stdout 重定向到/tmp/example.out,将 stderr 重定向到/tmp/example.err”。但目标文件是空的。我在这里缺少什么?

最佳答案

检查您的/tmp/example.err。它应该包含错误详细信息。

可能存在以下问题:

1: you forgot import org.apache.commons.daemon.*; ?
2: if yes, then DaemonExample.class is not getting created.
3: make sure DaemonExample.class exists in DaemonExample.jar
4: jsvc, usually must be called using full path. i.e. /usr/bin/jsvc .... check your debug info

关于java - 使用 jsvc 对 java 程序进行守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14101115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com