You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CRIU恢复进程触发段错误失败求助(Ubuntu 22.04环境)

问题描述

在Ubuntu 22.04.4 LTS Jammy系统中执行以下操作:

  1. 通过sudo apt-get install criu安装CRIU
  2. 执行sudo setcap cap_checkpoint_restore+eip /usr/sbin/criu配置权限
  3. 运行测试脚本test.sh后,执行转储命令:
    sudo criu dump -t 281699 -v4 -o dump.log -D test_criu/ --shell-job
    
    dump.log显示转储成功,但执行恢复命令时出错:
    sudo criu restore --shell-job -D test_criu/ -v2 -o restore.log
    
    错误日志如下:
    281699: Error (criu/cr-restore.c:1480): 281777 killed by signal 11: Segmentation fault
    Error (criu/cr-restore.c:2447): Restoring FAILED.
    Error (criu/cr-restore.c:1480): 281699 killed by signal 9: Killed
    
    最终项目需在Docker中使用CRIU,但同样遇到该问题,询问进程无法正常恢复的原因。
可能的原因及解决方向
  • CRIU版本兼容性问题
    Ubuntu仓库中的CRIU版本可能较旧,存在已知的恢复bug。建议从CRIU官方源码编译安装最新稳定版,避免依赖包管理器提供的旧版本。编译步骤大致为:

    sudo apt-get install build-essential libprotobuf-dev libprotobuf-c-dev protobuf-compiler protobuf-c-compiler libcap-dev libnl-3-dev libnl-genl-3-dev libnet-dev libaio-dev libgnutls28-dev libpam0g-dev libjson-c-dev libyajl-dev
    git clone https://github.com/checkpoint-restore/criu.git
    cd criu
    make
    sudo make install
    

    安装后重新设置权限:sudo setcap cap_checkpoint_restore+eip /usr/local/sbin/criu

  • Shell作业恢复的环境依赖问题
    使用--shell-job参数时,CRIU需要恢复shell的会话上下文,包括终端环境变量、文件描述符、会话组等。如果转储时的终端环境和恢复时的环境差异较大(比如转储时在某个SSH会话,恢复时在另一个终端或Docker容器内),可能导致恢复失败。
    建议:

    • 在与转储时相同的终端环境中执行恢复命令
    • 避免在Docker容器内直接恢复宿主机上转储的shell作业,容器的隔离环境会破坏原有的会话上下文
  • 进程状态与资源依赖问题
    转储的进程(PID 281699)可能持有一些无法被正确恢复的资源,比如:

    • 打开的特殊文件(如/dev/下的设备文件、匿名管道、socket连接)
    • 与其他进程的IPC关联(如共享内存、信号量)
    • 动态加载的库文件路径在恢复环境中不存在
      可通过criu check --all检查系统是否满足CRIU运行的所有依赖条件,排查是否有缺失的支持项。
  • Docker环境的额外限制
    Docker容器默认启用了一些安全隔离机制(如seccomp、AppArmor),可能阻止CRIU执行恢复操作。需要调整容器的运行参数:

    • 启动容器时添加--privileged参数(仅用于测试,不推荐生产环境)
    • 或精细配置seccomp规则,允许CRIU所需的系统调用
    • 确保容器内安装的CRIU版本与宿主机匹配,且同样配置了cap_checkpoint_restore权限

内容的提问来源于stack exchange,提问作者Tjester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 06:35:06