我正在使用Capistrano运行一个远程任务。我的任务看起来像这样:
task :my_task do
run "my_command"
end
我的问题是,如果my_command
的退出状态为!= 0,则Capistrano认为它失败并退出。当退出状态不为0时,如何让capistrano继续运行?我已经把my_command
改成了my_command;echo
,而且还行得通,但感觉就像是个黑客。
发布于 2009-08-25 14:19:54
最简单的方法是将true附加到命令的末尾。
task :my_task do
run "my_command"
end
变成了
task :my_task do
run "my_command; true"
end
发布于 2014-05-02 16:49:47
对于Capistrano 3,您可以(按照建议的here)使用以下内容:
execute "some_command.sh", raise_on_non_zero_exit: false
发布于 2009-04-21 19:09:43
+grep+命令根据它找到的结果退出非零值。在您关心输出但不关心它是否为空的用例中,您将静默地放弃退出状态:
run %Q{bash -c 'grep #{escaped_grep_command_args} ; true' }
通常,我认为第一种解决方案很好--我会让它自己文档化:
cmd = "my_command with_args escaped_correctly"
run %Q{bash -c '#{cmd} || echo "Failed: [#{cmd}] -- ignoring."'}
https://stackoverflow.com/questions/758774
复制相似问题