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

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 1

source /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



http://www.kler.cn/news/290666.html

相关文章:

  • CentOS7 yum 报错解决方案
  • FFmpeg源码:get_audio_frame_duration、av_get_audio_frame_duration2函数分析
  • Splasthop 安全远程访问帮助企业对抗 Cobalt Strike 载荷网络攻击
  • 鸿蒙(API 12 Beta6版)图形【NativeImage开发指导 (C/C++)】方舟2D图形服务
  • git---gitignore--忽略文件
  • 【C++】对比讲解构造函数和析构函数
  • 智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(KNN分类器)
  • idea对项目中的文件操作没有权限
  • 海外合规|新加坡网络安全认证计划简介(三)-Cyber Trust
  • SpringBoot+Redis极简整合
  • springboot集成七牛云上传文件
  • Python画笔案例-030 实现打点之斜正方
  • MATLAB 中的对数计算
  • torch、torchvision、torchtext版本兼容问题
  • ubuntu 22.04安装NVIDIA驱动和CUDA
  • 传统CV算法——基于 SIFT 特征点检测与匹配实现全景图像拼接
  • Java实现根据某个字段对集合进行去重并手动选择被保留的对象
  • vuex 基础使用
  • 网页版修改本地数据器:重新布局,引入 highlight.js高亮显示代码
  • 鸿蒙Next-拉起支付宝的三种方式——教程
  • 【Linux】理解Linux中的软链接与硬链接
  • 传统CV算法——背景建模算法介绍
  • 架构基础 -- 打点系统之FastAPI、python、grafana、prometheus实现
  • Unity数据持久化 之 文件操作(增删查改)
  • 【赵渝强老师】大数据生态圈中的组件
  • 8 自研rgbd相机基于rk3566之sensor图像解析与AWB算法原理
  • SQL语言的规则和规范
  • 盘点成都产业园前十,寻找你的理想创业地!
  • Pencils Protocol生态新进展,即将上线 Vault 产品
  • Python的list和numpy的array有什么区别?