SSH命令无法启动远程java进程

时间:2013-03-26 05:49:36

标签: java ssh

我有一个start函数,我把它放在一个远程站点上的脚本中,函数的代码显示在下面。

function start() {
    cd $install_dir

    mkdir -p logs

    export classpath=$classpath:$target_jar
    nohup java -Xms2048m -Xmx8192m -server -XX:PermSize=128m -XX:MaxPermSize=256m \
        -XX:+PrintGCDetails -XX:+PrintGCDateStamps \
        -XX:-OmitStackTraceInFastThrow \
        -cp $target_jar $main_class >> logs/jvm.log 2>&1 &

    echo "Service started, see logs"
}

当我尝试使用ssh ssh xxx@host "./service.sh start"调用该函数时,我无法启动java进程,我只收到响应消息“Service started,see logs”并且没有错误,jvm.log是也空了。显然我的脚本已经执行了,但目标java进程没有运行。

如果我登录到该远程站点并执行./service.sh start,则可以正常工作。

1 个答案:

答案 0 :(得分:0)

由于您可以手动运行该服务,因此ssh和脚本部分没问题。

环境可能出现问题。例如,您引用了没有绝对路径的java。因此,您可能正在运行它的不同版本。共享库加载的变量(LD_LIBRARY_PATH)也可能具有不同的值。

最后检查文件许可