Rails 服务器在调用 .exe 后死机

Rails Server dies after calling .exe

我刚开始使用 RoR 开发一个网页,当调用我的控制器中的创建方法并执行使用 python 创建的 .exe 文件并执行 py2exe 时,服务器突然停止,没有任何异常。有人能告诉我为什么会这样吗? (运行 服务器是 localhost:3000)。

创建方法:

@cotizador = Cotizador.new(cotizador_params)
if @cotizador.save
  exec("#{Rails.root}/app/assets/forcot/dist/ksnf.exe")

我用 python 创建的 .exe 文件更改了 .docx 文件,但没有生成日志文件。

希望对您有所帮助!

来自 Kernel#exec 的文档:

Replaces the current process by running the given external command, [...].

这意味着您的服务器进程已停止并被 exe 替换,因此您的服务器无法再回答,因为它只是 运行 了。

只需使用 Kernel#system 即可:

system("#{Rails.root}/app/assets/forcot/dist/ksnf.exe")

看看这个 answer 关于在 Ruby 中进行系统调用的各种方式及其区别。