在Oozie中调用shell脚本:如何在脚本的不同返回值的基础上使用决策节点

时间:2015-09-09 11:54:56

标签: shell switch-statement oozie

我目前正在使用Oozie来调用Shell脚本。在被调用的shell脚本的退出值的基础上,Oozie可以轻松地选择OK或ERROR节点,但是如果Shell以0或1以外的其他值退出会怎样? Oozie可以使用决策节点根据被调用的Shell脚本的退出值切换到不同的节点吗?

我正在考虑使用EL函数,但不知道whyc EL函数获取以前调用的Shell脚本的退出代码

1 个答案:

答案 0 :(得分:0)

  1. 确保shell出现非零值以表示严重错误(不可恢复,转至 kill )并为成功或应用程序错误退出零(继续工作流程以检查状态)
  2. 确保shell将 发送给StdOut,除了你的" soft"状态代码,否则你可能会在第4步爆炸HashMap
  3. 返回你的" soft"状态报告使用Java属性语法,例如echo "status.rc=0" ; echo "status.message=so far, so good"
  4. 在Shell Action中设置<capture_output/>选项,以便Oozie在HashMap(键/值)中检索您的状态报告
  5. 将工作流分支到Decision节点,检查显示软状态的值(使用wf:actionData() EL功能),并相应地进行分支