我正在开发一个Sinatra应用程序,我正在使用"rackup“来启动Webrick。我该怎么办才能阻止它?现在我使用的是Ctrl+Z,而看起来就像停止了一样。然而,当我再次尝试启动它时,它会说端口已经绑定了。
我尝试了许多端口,每次它启动,停止,然后说它在使用时,我再次启动它。
我该怎么解决呢?
发布于 2012-10-28 12:07:51
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发布于 2012-10-28 13:04:18
在斯奎夫的回答下,
如果您仍然在同一个终端中,请使用CTRL+C来终止该进程。
如果您是在后台启动它,或者想要从另一个终端杀死它,请使用
ps aux | grep [r]ackup | awk '{print $2}' | xargs sudo kill -9https://stackoverflow.com/questions/13108395
复制相似问题