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

如果 ruby myapp.rb在本地主机启动sinatra预览:4567,我如何以编程方式停止/停止/杀死它?终端命令(Ctrl-C除外),或者Rake任务会很好.

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

解决方法

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

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

kill <pid>

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

Process.kill 'TERM',<pid>

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

# myapp.rb:
File.open('myapp.pid','w') {|f| f.write Process.pid }

# shell:
kill `cat myapp.pid`

# ruby:
Process.kill 'TERM',File.read('myapp.pid')

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...