如何解決jenkins 執(zhí)行shell腳本 sh: ... not found的問(wèn)題
jenkins 執(zhí)行shell腳本 sh: ... not found
最近在玩jenkins的時(shí)候出現(xiàn)了以下問(wèn)題,兩次遇到這種問(wèn)題,所以記錄一下

這是因?yàn)闆](méi)有帶上系統(tǒng)的環(huán)境變量。
只有在 shell中第一行加上這句話:#!/bin/bash -ilex

Jenkins執(zhí)行腳本文件
Jenkins執(zhí)行腳本文件如下(startup.sh):
#!/bin/bash
#這里可替換為你自己的執(zhí)行程序,其他代碼無(wú)需更改
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
#啟動(dòng)方法
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
}
#輸出運(yùn)行狀態(tài)
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
}
#根據(jù)輸入?yún)?shù),選擇執(zhí)行對(duì)應(yīng)方法,不輸入則執(zhí)行使用說(shuō)明
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
sleep 5
start
;;
*)
echo "Usage:{start|stop|status|restart}"
;;
esac
exit 0只需要在jenkins指定執(zhí)行文件即可:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Jenkinsfile?中如何在?`sh`?步驟中執(zhí)行多行?Shell?命令(多行命令的方法)
- jenkins+shell自動(dòng)化部署的實(shí)現(xiàn)步驟
- Jenkins使用publish?html?report插件展示HTML報(bào)告的方法
- jenkins 實(shí)現(xiàn)shell腳本化定時(shí)執(zhí)行任務(wù)的方法
- Jenkins 編譯后使用SSH發(fā)布詳解
- jenkins中通過(guò)Publish Over SSH插件將項(xiàng)目部署到遠(yuǎn)程機(jī)器上的講解說(shuō)明
- Jenkins中sh函數(shù)的用法示例小結(jié)
相關(guān)文章
linux每天定時(shí)備份數(shù)據(jù)庫(kù)并刪除十天前數(shù)據(jù)詳細(xì)步驟
每天定時(shí)備份數(shù)據(jù)庫(kù)需要用到Linux的定時(shí)任務(wù),利用Linux的crondtab 命令。下面通過(guò)本文給大家?guī)?lái)了linux每天定時(shí)備份數(shù)據(jù)庫(kù)并刪除十天前數(shù)據(jù)詳細(xì)步驟,感興趣的朋友一起看看吧2018-06-06
Linux Shell中的特殊符號(hào)和含義簡(jiǎn)明總結(jié)(包含了絕大部份)
這篇文章主要介紹了Linux Shell中的特殊符號(hào)和含義簡(jiǎn)明總結(jié),本文匯總了包含了絕大部份的Shell特殊符號(hào),對(duì)每一個(gè)符號(hào)的作用做了總結(jié),需要的朋友可以參考下2014-06-06
shell腳本中執(zhí)行時(shí)提示“沒(méi)有那個(gè)文件或目錄”的解決辦法
故障現(xiàn)象:在終端直接cd /var正常,在shell腳本中執(zhí)行則報(bào)錯(cuò)。原因是腳本是在windows平臺(tái)下寫的,換行符與linux不同,造成腳本不能正確執(zhí)行2014-04-04
crontab實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本的兩種方法
相信大家在工作中,經(jīng)常會(huì)遇到定時(shí)執(zhí)行腳本的功能要求,或某個(gè)命令的情況。那么下面這篇文章主要給大家介紹了關(guān)于crontab實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本的相關(guān)資料,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-08-08
非常好的12道shell命令經(jīng)典面試問(wèn)題
shell面試題總結(jié)了一些,讓我們一起看一下吧,非常好的12道shell命令經(jīng)典面試問(wèn)題,需要的朋友可以參考下2018-02-02

