如何在Rundeck Web UI上杀死它时优雅地停止执行作业?

时间:2018-05-18 10:23:00

标签: rundeck

这与How to gracefully stop job execution when one step fails in Rundeck?的问题相同,只是我希望在Web UI中 kill 时优雅地停止作业。

我和另一个问题作者有类似的工作:它转储了一些SQL表;操纵一下转储;把它们上传到某处;和清理。

当清理工作被终止或杀死时,问题就出现了;它用永远不会删除的文件填充磁盘。 Rundeck为此支持error handlers,但文档说它是出错,而不是来自用户界面的手动杀戮。

我可以通过在我的脚本中使用以下内容来清除退出(成功或错误):

#!/bin/bash -ex
finish() {
  echo "remove dir $OUTPUT..."
  rm -Rf "$OUTPUT"
}
trap finish EXIT
# ... rest of the script ...

但是,当从UI中终止作业时,不会执行此步骤。我在Rundeck的代码源中挖掘它似乎只是使用Thread#interrupt,我可能无法捕捉到它。

这个问题有什么解决方案吗?现在我必须ssh进入节点并在我杀死这份工作时自行清理。

0 个答案:

没有答案