在几个项目中,我希望有一个rake任务rake server,它将通过它需要的任何方式开始为该应用程序提供服务.这是一个例子:
task :server do
%x{bundle exec rackup -p 1234}
end
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是当我准备停止它时,按下Ctrl+c不会优雅地关闭; 它会中断Rake任务本身,它表示rake aborted!并提供堆栈跟踪.在某些情况下,我必须做Ctrl+c两次.
我可能会写一些东西Signal.trap会更优雅地打断它.有没有更简单的方法?
rob*_*nex 11
trap('SIGINT') { puts "Your message"; exit }
Run Code Online (Sandbox Code Playgroud)
这应该成功.
您甚至可以trap在任务级别添加.
task :server do
trap('SIGINT') { puts "Your message"; exit }
%x{bundle exec rackup -p 1234}
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1736 次 |
| 最近记录: |