Mac环境下Rails s启动卡住,中断后报Interrupt错误求助
Rails s启动卡住中断后报Bootsnap Interrupt错误的排查方案
根据你提供的错误栈,问题出在Bootsnap编译缓存初始化阶段,且卡在AWS SDK相关gem的加载流程中,以下是未尝试过的排查和解决步骤:
临时禁用Bootsnap验证缓存问题
启动服务器时通过环境变量禁用Bootsnap:DISABLE_BOOTSNAP=1 rails s如果能正常启动,说明Bootsnap缓存损坏,执行以下命令清理缓存:
rails tmp:clear # 或精准清理Bootsnap缓存 rm -rf tmp/cache/bootsnap-*排查AWS SDK初始化阻塞
- 检查项目中
config/initializers/目录下的AWS相关初始化文件,确认是否存在同步网络请求、等待外部资源的逻辑,这类代码会导致启动卡住 - 临时注释Gemfile中
aws-sdk-s3、aws-sdk-kms相关依赖,执行bundle install后重新启动,验证是否为这些gem的加载问题 - 确保开发环境配置中没有生产级的AWS连接逻辑,尝试用明确的开发环境启动:
RAILS_ENV=development rails s
- 检查项目中
清理Ruby与Bundler缓存
- 强制清理Bundler缓存并重装依赖:
bundle clean --force bundle install - 若使用RVM,清空当前gemset后重装:
rvm gemset empty ruby-2.7.1 bundle install - 检查OpenSSL版本兼容性(AWS SDK依赖OpenSSL),Mac上若存在多版本冲突,重新安装Ruby指定OpenSSL路径:
rvm reinstall 2.7.1 --with-openssl-dir=$(brew --prefix openssl@1.1)
- 强制清理Bundler缓存并重装依赖:
追踪启动阻塞的详细过程
- 开启debug日志启动,查看具体卡住的环节:
rails s --debug - 使用Mac系统工具
dtruss跟踪系统调用,定位阻塞的操作(需sudo权限):sudo dtruss -f rails s
- 开启debug日志启动,查看具体卡住的环节:
排除Dropbox同步干扰
项目存储在Dropbox目录下可能因文件同步锁导致Bootsnap缓存写入失败,将项目复制到本地非同步目录(如~/Projects/)后重新启动验证。
内容的提问来源于stack exchange,提问作者Designer
相关产品推荐
相关产品推荐

