ruby - 无法阻止 "rackup"启动的 Webrick

标签 ruby sinatra rack webrick

我正在开发一个 Sinatra 应用程序,并使用“rackup”来启动 Webrick。我应该做什么来阻止它?现在我使用 Ctrl+Z,它似乎停止了。但是,当我尝试再次启动它时,它会说端口已绑定(bind)。

我尝试了很多端口,每次它启动,停止,然后当我再次重新启动它时说它正在使用。

如何解决?

最佳答案

Ctrl+Z 只会“暂停”进程,而不终止/杀死它。

要真正杀死它,请在进程表中找到它并执行 kill -9 [PID]

喜欢:

ps auxwww | grep ruby
slivu  16244   0.0  0.5  2551140  61220 s020  R+    1:18AM   0:10.70 ruby app.rb

第二列(16244)是PID。

另一种方法是使用 Ruby“捕获”INT 信号并显式退出应用程序。

在您的应用程序中:

Signal.trap 'INT' do
    Process.kill 9, Process.pid
end

关于ruby - 无法阻止 "rackup"启动的 Webrick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108395/

相关文章:

ruby-on-rails - Google Calendar API V3 - 插入日历

ruby - Sinatra/ActiveRecord 无法处理并发请求?

ruby-on-rails - 我如何从 Rails 中访问 Rack 环境?

ruby - 如何在运行时调试我的 Rack 应用程序?

ruby-on-rails - 使用 `rails server` 和 `rackup` 有什么区别?

ruby-on-rails 初始化程序在 irb 中不起作用,但在正常运行应用程序时起作用

ruby-on-rails - 具有多个 idP 的 OneLogin SSO

ruby - 使用 Datamapper 和 Sinatra 进行简单搜索

ruby - 具有 block 局部参数的多个 Kernel#local_variables 条目

ruby - 使用 Twitter Oauth 进行服务认证