红宝石 – 如何阻止sinatra跑步?

前端之家收集整理的这篇文章主要介绍了红宝石 – 如何阻止sinatra跑步?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果 ruby myapp.rb在本地主机启动sinatra预览:4567,我如何以编程方式停止/停止/杀死它?终端命令(Ctrl-C除外),或者Rake任务会很好.

我需要将其纳入耙子任务或终端.

解决方法

在myapp.rb中,在sinatra开始之前添加
  1. puts "This is process #{Process.pid}"

当你想杀死它,在shell中执行此操作:

  1. kill <pid>

其中< pid>是myapp.rb输出的号码.如果你想在红宝石中做:

  1. Process.kill 'TERM',<pid>

这两个都将让sinatra运行它的退出例程.如果您不想每次都输入pid,请将myapp.rb打开一个文件,并将其放在其中.然后当你想停止它,阅读文件并使用它.例:

  1. # myapp.rb:
  2. File.open('myapp.pid','w') {|f| f.write Process.pid }
  3.  
  4. # shell:
  5. kill `cat myapp.pid`
  6.  
  7. # ruby:
  8. Process.kill 'TERM',File.read('myapp.pid')

猜你在找的Ruby相关文章