目 录CONTENT

文章目录

Jenkins 执行目标服务器sh文件 提示:'nohup: 无法运行命令"java": 没有那个文件或目录'

MWSFOT
2022-10-12 / 0 评论 / 0 点赞 / 403 阅读 / 418 字

分析

报错信息

image-1665538880332

场景

通过jenkins服务器远程执行jar包所在服务器的sh启动命令报错

jenkins-job配置设置

#! /bin/bash set +x
APP_HOME=${_path}/${_app}
APP_NAME=${_app}
pid=$( ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}' )
echo $pid
if [ -z "$pid" ]
        then
                echo "$APP_NAME not started"
        else
                kill -9 $pid
                echo "$APP_NAME stopping"
fi
echo "$APP_NAME starting."
cd ${APP_NAME}
sh start.sh

核心就是启动目标服务器的start.sh文件

目标服务器设置

目标服务器格式如下 image-1665538770851
start.sh文件内容

nohup  java -Xms256m -Xmx512m -Dfile.encoding=utf-8 -jar -Dspring.profiles.active=dev `pwd`/ztcx-monitor.jar > catalina.out  2>&1 &echo $! > pid

问题原因

直接执行脚本 sh start.sh 是没有问题的
但是在另一个服务器上,执行这个服务器上的脚本,就会出现
nohup: 无法运行命令"java": 没有那个文件或目录,解决方式,就是通过sh中需要以全限定路径执行JAVA命令,$JAVA_HOME环境变量/bin/java 直接指定到具体位置

启动sh文件命令

第一种:(要进到shell脚本所在文件夹中)

sh xx.sh

第二种:(要进到shell脚本所在文件夹中)

bash xx.sh

第三种:(要进到shell脚本所在文件夹中)

./xx.sh

第四种:

/全路径/xx.sh

结果

直接jenkins运行sh文件内容,并指定java命令及jar包全路径

cd $APP_HOME #jar包所在路径或者拼接在jar包前
 nohup  $JAVA_HOME/bin/java  -jar -Xms256m -Xmx512m -Dfile.encoding=utf-8 -Dspring.profiles.active=dev ztcx-monitor.jar > catalina.out  2>&1 &echo $! > pid

0

评论区