gpt4 book ai didi

ruby - 如何在脚本失败(错误)时继续并使用 Capistrano 3 捕获输出

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

在 Capistrano 2.x 中你可以简单地添加 :on_error => :continue 像这样:

task :bad_script, :on_error => :continue do
my_error = capture('/path/to/tomcat/shutdown.sh')
end

我看不到在 Capistrano 3.x 或 ssh-kit(底层通信)中执行此操作的任何方法。任何帮助将不胜感激。

task :bad_script do
server_is_down
on roles :all do
begin
server_is_down = capture('/path/to/tomcat/shutdown.sh')
rescue
#do something if server_is_down has the correct text
end
end
end
end

我已经尝试在开始/救援 block 中使用新方法,但这只会阻止它出错,但不会返回错误的输出。

我仍然想知道如何做到这一点,但我想出了一个解决我的一个案例需要它的方法,那就是如果它失败就设置服务器关闭。

task :bad_script do
server_is_down = false
on roles :all do
begin
execute('/path/to/tomcat/shutdown.sh')
rescue
server_is_down = true
end
end
end
end

这是假设它仅在关闭时出错。

最佳答案

您可以抑制错误并将 stderr 重定向到这样的变量:

capture('output_from_tomcat_shutdown=`/path/to/tomcat/shutdown.sh 2>&1` || echo $output_from_tomcat_shutdown')

关于ruby - 如何在脚本失败(错误)时继续并使用 Capistrano 3 捕获输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21123902/

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