【问题标题】:How to stop Ruby WEBrick app from Terminal in Xubuntu如何从 Xubuntu 的终端停止 Ruby WEBrick 应用程序
【发布时间】:2012-04-21 23:24:52
【问题描述】:

我开始学习 Ruby。我尝试使用 WEBrick 服务器。在ruby index.rb 命令服务器启动后。以及如何阻止它?我尝试了 Ctrl+c、Ctrl+X 等。它仍然有效。然后我按了Ctrl+Z。 Bash 说:[1]+ Stopped ruby index.rb. 但是进程仍在工作,并且使用我的端口,需要服务器。我只能从系统监视器中杀死它。

我需要在 bash 中使用什么命令来杀死 index.rb 进程??

当我使用 Ctrl+C 时,出现错误:

[2012-04-09 19:44:10] ERROR Interrupt: 
/usr/lib/ruby/1.8/webrick/server.rb:91:in `select'

附:应用程序非常简单(来自 WikiBooks):

   require 'webrick'
server = WEBrick::HTTPServer.new(:Port=>8080)
server.mount_proc('/'){ |req, resp|
    File.open('notepad.txt', 'w'){ |f| f.write(req.query["text"]) } if req.query["text"]
    resp['Content-Type'] = 'text/html'
    resp.body = %& <html><body><center><form method="post">
        <textarea name="text" rows="4" cols="40">#{IO.read('notepad.txt')}</textarea><br/>
        <input type="submit" name="update" value="save"/>
        </form></center></body></html></nowiki>& 
}

【问题讨论】:

    标签: ruby bash terminal webrick xubuntu


    【解决方案1】:

    您始终可以通过指定 PID 来终止您的进程。

    要从您的服务器进程中获取 pid,您可以使用

    $ ps a | grep ruby

    PID 是第一列,之后使用:$ kill -9 &lt;YOUR_PID&gt; 杀死进程。

    你的服务器没有捕捉到SIGINT,这就是为什么你不能用Ctrl+C来阻止它。

    把你的脚本改成这个

    require 'webrick'
    
    server = WEBrick::HTTPServer.new(:Port=>8080)
    
    trap 'INT' do server.shutdown end
    
    server.mount_proc('/'){ |req, resp|
        File.open('notepad.txt', 'w'){ |f| f.write(req.query["text"]) } if req.query["text"]
        resp['Content-Type'] = 'text/html'
        resp.body = %& <html><body><center><form method="post">
            <textarea name="text" rows="4" cols="40">#{IO.read('notepad.txt')}</textarea><br/>
            <input type="submit" name="update" value="save"/>
            </form></center></body></html></nowiki>& 
    }
    
    server.start
    

    并享受Ctrl+C

    【讨论】:

    • 但是陷阱需要在服务器挂载之后,它会起作用...谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2014-12-23
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多