当前位置: 首页 > news >正文

jupyter 笔记本中如何判定bash块是否执行完毕

jupyter notebook中 后台执行bash卡住解决

jupyter版本

!jupyter --version

Selected Jupyter core packages...
IPython          : 8.27.0
ipykernel        : 6.29.5
ipywidgets       : 8.1.5
jupyter_client   : 8.6.2
jupyter_core     : 5.7.2
jupyter_server   : 2.14.2
jupyterlab       : 4.2.5
nbclient         : 0.10.0
nbconvert        : 7.16.4
nbformat         : 5.10.4
notebook         : 7.2.2
qtconsole        : not installed
traitlets        : 5.14.3
Selection deleted

jupyter如何判定%%bash块是否执行完毕

若该%%bash块中启动的存在进程的 stdoutstderr 输出 到该bash进程自身,

则jupyter认为该块没有执行完毕,要等待该块执行完毕,

这样会导致卡在该块,无法执行后续块

解决办法是 让该%%bash块中, 业务进程 的stdoutstderr 重定向 到其他文件,

注意 %%bash块中 书写的 后台执行业务脚本.sh & , jupyter并不认为他已经执行完了

(举例)jupyter中启动uiauto.dev的网页服务

%%bash #杀死python进程 uiauto.dev 
kill $(ps auxf | grep uiauto.dev  | grep -v grep | tr -s ' ' | cut -d ' ' -f 2)
sleep 1source /app2/pyAui/.venv/bin/activate ; 
set -x;  
cur_pid=$$uiauto_booted=false
ps auxf | grep uiauto | grep -v grep && uiauto_booted=true if ! $uiauto_booted ; then
#启动uiauto.dev的网页服务 (将stdout、stderr脱离当前bash进程,以欺骗jupyter使其认为该进程已经执行完毕)
uiauto.dev 1>/tmp/uiauto.dev.stdout 2>/tmp/uiauto.dev.stderr &   
uiauto_dev_pid=$!
sleep 2; cat /tmp/uiauto.dev.*
fi

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【人工智能】Transformers之Pipeline(十四):问答(question-answering)
  • 【linux002】目录操作命令篇 - ls 命令
  • BF算法Java
  • HarmonyOs
  • 山 寨 币
  • 虚拟化技术实现;容器和虚拟化;一种软件实现各类厂商多种型号算力资源池化和虚拟化的;
  • STL简介、什么是STL、STL的六大组件、STL缺陷等的介绍
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • 20240831-PostgreSQL小课持续更新
  • 神仙公司名单(北京篇)
  • Java-互斥锁死锁释放锁
  • Linux之nginx部署项目【前后端分离】(外加redis安装)
  • Elasticsearch在高并发下如何保证读写一致性
  • 【面试05】PID控制算法
  • git创建本地分支并track跟踪远程分支
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Node项目之评分系统(二)- 数据库设计
  • Python 基础起步 (十) 什么叫函数?
  • Solarized Scheme
  • Vue.js 移动端适配之 vw 解决方案
  • Vue.js源码(2):初探List Rendering
  • webpack项目中使用grunt监听文件变动自动打包编译
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 创建一种深思熟虑的文化
  • 对象引论
  • 官方解决所有 npm 全局安装权限问题
  • 后端_MYSQL
  • 技术:超级实用的电脑小技巧
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 扑朔迷离的属性和特性【彻底弄清】
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 手机端车牌号码键盘的vue组件
  • 微信公众号开发小记——5.python微信红包
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 《码出高效》学习笔记与书中错误记录
  • 正则表达式-基础知识Review
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​Python 3 新特性:类型注解
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​第20课 在Android Native开发中加入新的C++类
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #java学习笔记(面向对象)----(未完结)
  • #LLM入门|Prompt#3.3_存储_Memory
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (3)(3.5) 遥测无线电区域条例
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (七)Java对象在Hibernate持久化层的状态