SageMaker笔记本实例生命周期配置脚本超5分钟超时,nohup不生效如何解决
解决方案
方法1:优化生命周期脚本,规避超时限制
将安装逻辑整理为顺序执行的独立脚本,后台运行不阻塞生命周期流程,生命周期脚本本身可在几秒内执行完成,不会触发超时规则,同时优化编译参数大幅缩短安装耗时,脚本示例如下:
#!/bin/bash set -e # 写入完整安装逻辑到独立脚本 cat > /home/ec2-user/install_deps.sh << 'EOF' #!/bin/bash # 合并所有yum安装命令,减少重复开销 sudo yum install -y wget autoconf automake libtool jpeg tiff libpng tiff2png libtiff libjpeg-devel libpng-devel libtiff-devel zlib-devel gcc gcc-c++ make poppler-utils # 安装leptonica cd /home/ec2-user wget https://github.com/DanBloomberg/leptonica/releases/download/1.82.0/leptonica-1.82.0.tar.gz tar xzvf leptonica-1.82.0.tar.gz cd leptonica-1.82.0 sudo ./configure --prefix=/usr/local/ # 启用多核编译,速度提升数倍 sudo make -j$(nproc) sudo make install # 安装tesseract cd /home/ec2-user wget https://codeload.github.com/tesseract-ocr/tesseract/tar.gz/4.1.1 -O tesseract-4.1.1.tar.gz tar -zxvf tesseract-4.1.1.tar.gz cd tesseract-4.1.1 sudo ./autogen.sh sudo cp /home/ec2-user/leptonica-1.82.0/lept.pc /usr/lib64/pkgconfig/. sudo LIBLEPT_HEADERSDIR=/usr/local/lib ./configure --prefix=/usr/local/ --with-extra-libraries=/usr/local/lib sudo make -j$(nproc) sudo make install export LD_LIBRARY_PATH=/usr/local/lib sudo ldconfig wget https://github.com/tesseract-ocr/tessdata_best/raw/main/eng.traineddata sudo mv -v eng.traineddata /usr/local/share/tessdata/eng.traineddata # 安装ghostpdl cd /home/ec2-user wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9550/ghostpdl-9.55.0.tar.gz tar -zxvf ghostpdl-9.55.0.tar.gz cd ghostpdl-9.55.0 sudo ./configure --prefix=/usr/local/ sudo make -j$(nproc) sudo make install # 安装qpdf cd /home/ec2-user wget https://github.com/qpdf/qpdf/releases/download/release-qpdf-10.1.0/qpdf-10.1.0.tar.gz tar xzvf qpdf-10.1.0.tar.gz cd qpdf-10.1.0 sudo ./configure --prefix=/usr/local/ sudo make -j$(nproc) sudo make install # 清理安装缓存 cd /home/ec2-user rm -rf *.tar.gz leptonica-* tesseract-* ghostpdl-* qpdf-* EOF chmod +x /home/ec2-user/install_deps.sh # 后台执行安装,日志写入本地文件可随时排查 nohup /home/ec2-user/install_deps.sh > /home/ec2-user/install_logs.log 2>&1 &
安装过程中可查看/home/ec2-user/install_logs.log确认进度,安装完成后依赖即可永久生效。
方法2:预构建自定义镜像(长期最优方案)
如果需要频繁启动该笔记本实例,推荐基于SageMaker官方基础镜像构建自定义镜像,把所有依赖预先编译安装到镜像内,后续启动实例直接使用该自定义镜像,无需每次启动执行安装流程,启动速度更快也不存在超时风险。
内容的提问来源于stack exchange,提问作者Kelly
相关产品推荐
相关产品推荐

