我正在开发一个Sinatra应用程序,我正在使用“rackup”启动Webrick。我该怎么做才能阻止它?现在我正在使用Ctrl + Z,似乎就像停止一样。但是,当我尝试再次启动它时,它会说端口已被绑定。
我尝试了很多端口,每次启动时都停止,然后再次重新启动它时说它正在使用。
我该如何解决?
答案 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