无法阻止Webrick推出“Rackup”

时间:2012-10-28 11:24:18

标签: ruby sinatra rack webrick

我正在开发一个Sinatra应用程序,我正在使用“rackup”启动Webrick。我该怎么做才能阻止它?现在我正在使用Ctrl + Z,似乎就像停止一样。但是,当我尝试再次启动它时,它会说端口已被绑定。

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

我该如何解决?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

延伸slivu的回复,

如果您仍然在同一个终端,请使用CTRL+C来终止该过程。

如果您在后台启动它,或想要从其他终端杀死,请使用

ps aux | grep [r]ackup | awk '{print $2}' | xargs sudo kill -9