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

Ubuntu环境下如何用nohup实现Ruby驱动Jupyter-Book后台运行

解决Ubuntu下make serve后台驻留运行的问题

你遇到的问题大概率是因为Guard(从前台运行输出能看到它在管理Jekyll服务)在后台运行时,需要处理终端交互或标准输入关联的问题,导致nohup命令没达到预期效果。下面给你几个可行的解决方案:

方案1:完善nohup命令,彻底断开终端输入关联

你的nohup命令已经重定向了输出,但Guard可能还在等待标准输入,导致进程挂起。试试加上< /dev/null彻底断开终端输入:

nohup make serve >/dev/null 2>&1 < /dev/null &

执行后用以下命令检查进程是否正常运行:

ps aux | grep guard

如果能看到Guard相关的进程条目,说明服务已经在后台正常驻留了。

方案2:用screen/tmux实现后台运行(更可靠,支持重新连接)

这是长期运行后台服务的推荐方式,不仅能让服务驻留,还能随时重新进入终端查看输出或管理服务:

  1. 先安装screen(如果系统没装的话):
sudo apt update && sudo apt install screen
  1. 创建一个专属的screen会话:
screen -S jupyter_book_server
  1. 在新会话里运行make serve,等服务正常启动后,按下Ctrl+A再按D,就能脱离会话让服务在后台继续运行。
  2. 之后如果需要重新查看服务状态或操作,执行:
screen -r jupyter_book_server

要停止服务的话,进入会话后按Ctrl+C即可。

方案3:修改Makefile让Guard以守护进程模式启动

如果你的Guard版本支持后台模式,可以修改Makefile里的serve目标,把原来的bundle exec guard改成:

bundle exec guard start --daemon

这样直接运行make serve就会让Guard后台运行,不需要额外的nohup命令。这种方式下,服务日志通常会输出到项目目录下的guard.log文件,方便后续查看。

不管用哪种方案,都可以用curl http://0.0.0.0:4000/jupyter-book/来测试服务是否正常响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:35:10