如何解決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-06Linux Shell中的特殊符號(hào)和含義簡(jiǎn)明總結(jié)(包含了絕大部份)
這篇文章主要介紹了Linux Shell中的特殊符號(hào)和含義簡(jiǎn)明總結(jié),本文匯總了包含了絕大部份的Shell特殊符號(hào),對(duì)每一個(gè)符號(hào)的作用做了總結(jié),需要的朋友可以參考下2014-06-06shell腳本中執(zhí)行時(shí)提示“沒(méi)有那個(gè)文件或目錄”的解決辦法
故障現(xiàn)象:在終端直接cd /var正常,在shell腳本中執(zhí)行則報(bào)錯(cuò)。原因是腳本是在windows平臺(tái)下寫(xiě)的,換行符與linux不同,造成腳本不能正確執(zhí)行2014-04-04crontab實(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-08Linux 中糾正拼寫(xiě)錯(cuò)誤的Bash 命令方法
這篇文章主要介紹了Linux 中糾正拼寫(xiě)錯(cuò)誤Bash 命令的方法,需要的朋友可以參考下2018-03-03非常好的12道shell命令經(jīng)典面試問(wèn)題
shell面試題總結(jié)了一些,讓我們一起看一下吧,非常好的12道shell命令經(jīng)典面試問(wèn)題,需要的朋友可以參考下2018-02-02