python - 在 Jenkins 中通过 shell 执行命令运行 python 脚本
问题描述
Jenkins 作业已设置,以便它检查执行某些 python 代码的最新版本的 git repo。git repo 被签出到我们的 linux 实验室 pc 并在那里运行。
在脚本中,我们正在检查一些 labpc 网络接口的状态。我制作了一个小脚本,它执行以下几行,但它会抛出类似“没有文件或目录”的错误。该命令没问题,但它失败了,因为 linux env 不可见。奇怪的是,我们有 10 个测试用例,其中 6 个运行良好,有 4 个失败,而且总是失败。所有测试用例中的事件顺序完全相同......
res = subprocess.check_output(['ip', 'link', 'show', 'dev', '<interface name>'])
logger.info(res)
脚本在本地执行时有效,因此这背后存在詹金斯问题。有没有人有任何提示来解决这个问题?
解决方案
通过在命令前加上“sudo”来解决问题。尽管该命令不需要 sudo 权限,但在使用 jenkins 运行时需要它。
您可以在 jenkins 中打开节点,您可以在其中对服务器执行 groovy 命令并测试它是否有效。
推荐阅读
- android - 在多语言 Android 应用程序中处理 TextView 中的混合语言文本
- geoserver - 带有 nodata 的 Geoserver WMTS 插件
- java - 使用 while 循环将值输入 Java 进程构建器并获取输出
- javascript - 如何排除空格作为用户输入?
- reactjs - React-final-form 焦点不关注给定字段
- swift - 如何在 swift 中将一侧的角半径提供给 Imageview?
- ffmpeg - FFmpeg 未知的输入格式:'gdigrab'
- authentication - Elementor 登录小部件 - 注销功能
- flutter - 在颤振/飞镖中读取二进制字符串作为 zip
- javascript - 如何防止jquery datepicker在jsp中提交时清除日期