如何解决jenkins执行shell脚本sh:...notfound的问题

Diane ·
更新时间:2024-09-20
· 8 次阅读

目录

jenkins 执行shell脚本 sh: ... not found

Jenkins执行脚本文件

总结

jenkins 执行shell脚本 sh: ... not found

最近在玩jenkins的时候出现了以下问题,两次遇到这种问题,所以记录一下

这是因为没有带上系统的环境变量。

只有在 shell中第一行加上这句话:#!/bin/bash -ilex

Jenkins执行脚本文件

Jenkins执行脚本文件如下(startup.sh):

#!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 export JAVA_HOME=/usr/src/java/jdk1.8.0_201 APP_NAME=school-rest-1.0.0-SNAPSHOT.jar FULL_PATH=/usr/data/school-rest/school-rest-1.0.0-SNAPSHOT.jar #启动方法 start(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` if [ "$pid" ]; then echo "$APP_NAME is already running. pid=$pid ." else nohup $JAVA_HOME/bin/java -jar $FULL_PATH --spring.profiles.active=dev >> catalina.out 2>&1 & echo $! echo "$APP_NAME now is running" fi } #停止方法 stop(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` if [ "$pid" ]; then kill -9 $pid echo "Pid:$pid stopped" else echo "$APP_NAME is not running" fi } #输出运行状态 status(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` if [ "$pid" ]; then echo "$APP_NAME is running. Pid is ${pid}" else echo "$APP_NAME is NOT running." fi } #根据输入参数,选择执行对应方法,不输入则执行使用说明 case "$1" in start) start ;; stop) stop ;; status) status ;; restart) stop sleep 5 start ;; *) echo "Usage:{start|stop|status|restart}" ;; esac exit 0

只需要在jenkins指定执行文件即可:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。



jenkins shell

需要 登录 后方可回复, 如果你还没有账号请 注册新账号