Jenkins节点执行脚本遇script.sh Permission denied错误求助
解决Jenkins流水线执行时的//: Permission denied错误
问题根源:你在Shell脚本中错误使用了//作为注释符号,而Linux Shell仅支持#作为单行注释标记。Jenkins生成的临时脚本会将//识别为可执行命令,由于不存在名为//的命令,因此抛出权限拒绝错误(exit code 126)。
修正后的流水线代码
将所有//替换为#即可解决该问题:
pipeline { agent any stages { stage('Dev Build') { agent { label 'dev-node' } steps { sh ''' pwd # 若应用正在运行,终止进程 sudo fuser -k 80/tcp # 更新软件源 sudo apt-get update # 安装Maven sudo apt install -y maven ''' } } } }
额外注意事项
- 确保Jenkins节点的运行用户(此处为ubuntu)已配置sudo免密权限,否则流水线会因等待密码输入而停滞。可通过执行
sudo visudo,添加ubuntu ALL=(ALL) NOPASSWD: ALL完成配置(根据实际用户名调整)。 - Jenkins会自动处理临时脚本的执行权限,无需手动执行
chmod +x操作。
内容的提问来源于stack exchange,提问作者Mohan Balakrishnan
相关产品推荐
相关产品推荐

