1. 程式人生 > 實用技巧 >Jenkins執行shell指令碼時要設定許可權

Jenkins執行shell指令碼時要設定許可權

目前出現了一個問題,當我獨自用shell指令碼執行啟動springBoot時 就可以註冊到eureka上

如果用jenkins執行shell指令碼時 就會出現註冊不上去的情況

2020-11-18 13:47:54.808  INFO 29482 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_XIANNANSHAN-USER/172.17.165.145:xiannanshan-user:8060: registering service...
2020-11-18 13:47:54.994  INFO 29482 --- [extShutdownHook] com.netflix.discovery.DiscoveryClient    : Shutting down DiscoveryClient ...
2020-11-18 13:47:55.050  INFO 29482 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_XIANNANSHAN-USER/172.17.165.145:xiannanshan-user:8060 - registration status: 204
2020-11-18 13:47:55.053  INFO 29482 --- [extShutdownHook] com.netflix.discovery.DiscoveryClient    : Unregistering ...
2020-11-18 13:47:55.246  INFO 29482 --- [extShutdownHook] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_XIANNANSHAN-USER/172.17.165.145:xiannanshan-user:8060 - deregister  status: 200
2020-11-18 13:47:55.273  INFO 29482 --- [extShutdownHook] com.netflix.discovery.DiscoveryClient    : Completed shut down of DiscoveryClient

聰明的我領悟到有可能是因為shell指令碼沒有許可權執行檔案

在Jenkins執行shell指令碼時:

於是在shell指令碼前面加上sudo 提權執行

echo "開始執行maven打包"
mvn clean install package -Dmaven.test.skip=true
echo "maven打包完成"
echo "開始複製jar包"
pwd
cd /root/.jenkins/workspace/xiannanshan-parents/
sh xiannanshan-publish.sh backup user prod
sodo sh xiannanshan-publish.sh backup cloud-parent prod
find /root/.jenkins/workspace/xiannanshan-parents -name '*.jar' -exec cp {} /usr/local/xiannanshan/xiannanshan-parents/lib/ \;
sodo sh xiannanshan-publish.sh restart cloud-parent prod
sudo sh xiannanshan-publish.sh restart user prod