gpt4 book ai didi

ruby - 可以正常中断的来自 Rake 的长时间运行的 shell 命令?

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:03 25 4
gpt4 key购买 nike

在几个项目中,我希望有一个类似 rake server 的 rake 任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:

task :server do
%x{bundle exec rackup -p 1234}
end

这行得通,但是当我准备停止它时,按 Ctrl+c 并没有正常关闭;它中断了 Rake 任务本身,它说 rake aborted! 并给出堆栈跟踪。在某些情况下,我必须执行 Ctrl+c 两次。

我可能可以用 Signal.trap 写一些东西来更优雅地中断它。有没有更简单的方法?

最佳答案

trap('SIGINT') { puts "Your message"; exit }

这应该可以解决问题。

您甚至可以在任务级别添加陷阱

task :server do
trap('SIGINT') { puts "Your message"; exit }
%x{bundle exec rackup -p 1234}
end

关于ruby - 可以正常中断的来自 Rake 的长时间运行的 shell 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21146136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com