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

使用Julia与Genie构建REST服务:命令行启动后立即停止的解决方法

解决Genie服务在命令行脚本中立即退出的问题

当直接通过命令行执行julia myrestapi.jl时,Genie的up()方法默认以异步模式启动,不会阻塞主线程,导致脚本执行完毕后直接退出。可以通过以下几种方式让服务器持续运行:

方法一:启用同步启动模式

Genie的up()函数支持async参数,默认值为true(异步启动)。将该参数设置为false,服务器会在主线程中同步运行,从而保持程序不退出:

using Genie

# 定义你的路由逻辑
route("/") do
  "Hello from Genie REST API!"
end

# 同步启动服务器,阻塞主线程
up(8888, async=false)

方法二:用wait()阻塞主线程

在调用up(8888)之后,添加wait()函数让主线程保持阻塞状态,直到收到中断信号(如Ctrl+C):

using Genie

route("/") do
  "Hello from Genie REST API!"
end

up(8888)

# 阻塞主线程,防止程序退出
wait()

方法三:手动循环等待中断

你也可以通过循环+睡眠的方式,让程序持续运行直到收到终止指令:

using Genie

route("/") do
  "Hello from Genie REST API!"
end

up(8888)

# 持续运行直到收到中断信号
try
  while true
    sleep(1)
  end
catch e
  if e isa InterruptException
    println("Shutting down server gracefully...")
  else
    rethrow(e)
  end
end

以上方法都能确保脚本在命令行运行时,服务器持续保持在线,直到你主动通过Ctrl+C终止程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:05:22