gpt4 book ai didi

ruby - 通过 Ruby 脚本管理瘦服务器

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:39 25 4
gpt4 key购买 nike

我有一个项目,其中有一个 sinatra 应用程序,我想通过管理 ruby​​ 脚本文件来启动它。我希望能够启动、停止和重新启动它,如果需要,也能够将其守护进程。也就是说,我想在我的脚本中包含这样的内容:

bin/我的脚本

require 'MyCLI'
MyCLI.new(ARGV).run

lib/mycli.rb

class MyCLI
# instantiate and other methods (inspired by thin runner)
...
def run
# parse commands and options
...
# then process command
case @command
when 'start'
@server = Thin::Server.new(host, port, MyModule::MyAppClass)
@server.start
when 'stop'
# ?
when 'restart'
# ?
else
raise "Unknown command"
end
end
end

但是我遇到了一些问题,

  1. 我是否需要对其进行守护进程,具体取决于某些命令选项,并且在阅读文档并深入了解一些代码。

  2. 停止就像 @server.stop 一样简单,但是由于我的脚本在每次命令行请求时实例化一个 mycli 对象,所以我没有一个对象,所以 @server 在之后消失启动请求,所以我认为唯一的解决方案是控制 PID(对吗??),但无法找到如何管理它。此外,在前台运行它不适用于我认为的这种 pid 方法。

  3. 重启它的正确方法是什么?

有人对此有最佳解决方案吗?

最佳答案

我最终使用了 Rack::Server.start(app, host, port, env, daemonize(Y/N), pid_file)。

它工作得很好,如果可用的话,它会选择瘦处理程序。

关于ruby - 通过 Ruby 脚本管理瘦服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8639742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com