我正在开发一个 Sinatra 应用程序,我正在使用“rackup”来启动 Webrick。我应该怎么做才能阻止它?现在我正在使用 Ctrl+Z ,它似乎停止了。但是,当我尝试再次启动它时,它会说端口已经绑定。
我尝试了许多端口,每次它启动,停止,然后当我再次重新启动它时说它正在使用。
我该如何解决?
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
扩展 slivu 的回复,
CTRL+C
如果您仍在同一个终端中,请使用终止该进程。
如果您在后台启动它,或者想从不同的终端终止,请使用
ps aux | grep [r]ackup | awk '{print $2}' | xargs sudo kill -9