首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jsvc守护java程序

使用jsvc守护java程序
EN

Stack Overflow用户
提问于 2012-12-31 19:40:42
回答 2查看 3.1K关注 0票数 1

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

代码语言:javascript
复制
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 jsvc -user编码器-outfile /tmp/example.out -errfile /tmp/example.err -pidfile /tmp/example.pid daemonexample.DaemonExample

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

EN

回答 2

Stack Overflow用户

发布于 2012-12-31 22:54:12

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

以下是可能出现的问题:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2013-01-03 00:51:55

转储已解析的命令行参数| Detach: True |显示版本:否|显示帮助:否|仅检查:已禁用|停止: False |等待:0|作为服务运行:否|安装服务:否|删除服务:否| JVM名称:"null“| Java Home:"/Library/Java/Home”| PID文件:"/tmp/example.pid“|用户名称:“根”|额外选项:1| "-Djava.class.path=/Users/username/NetBeansProjects/DaemonExample/dist/DaemonExample.jar“|调用的类:"daemonexample.DaemonExample”|类参数:0

不需要将用户更改为“root”!用户'root‘验证的Home未在命令行上指定,使用的环境Home未在命令行或环境中,正在搜索尝试在/System/Library/Frameworks/JavaVM.framework/Home中查找Java Home尝试查找VM配置文件/System/Library/Frameworks/JavaVM.framework/Home/jre/lib/jvm.cfg尝试查找VM配置文件/System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg在/System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg中找到VM配置文件在配置检查库/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclient.中找到VM客户端定义dylib在配置检查库中找到VM jvm定义/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libjvm.dylib在配置检查库中找到VM热点定义/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libhotspot.dylib在配置检查库中找到VM服务器定义/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib在配置检查库中找到VM经典定义/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclassic.dylib找不到库对于位于客户机中的VM经典(跳过) JAVA Home,转储Java HOME结构| Java Home:"/System/Library/Frameworks/JavaVM.framework/Home“| Java VM配置:"/System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg”|找到JVM :4| /System/Library/Frameworks/JavaVM.framework/Home Name:"client“| "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclient.dylib“| JVM名称:" JVM”|系统| JVM名称:“热点”| "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libhotspot.dylib“|JVM名称:”服务器“|”/ "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libjvm.dylib“/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib“

将标准输出重定向到/tmp/example.out,将标准错误重定向到/tmp/example.err

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14101115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档