Azure开发人员在取消时杀死由任务运行的进程

时间:2019-12-04 12:20:47

标签: azure-devops

我有一个构建管道,该管道使用nunit.exe运行程序运行一些自动化测试。 例如

  - powershell: ./nunit.exe etc etc...

如果我的构建管道被取消,我想杀死在该任务中启动的Nunit进程(这些当前没有立即被杀死,因此由于无法删除测试文件而在重新运行该管道时导致该管道失败)。 要取消取消管道时的Nunit进程,我需要执行以下操作:

  - task: MyCleanUpTask
    condition: canceled()

然后看来,我应该能够使用Powershells taskkill之类的东西杀死Nunit进程,作为该任务的下一步。 但是,与其使用类似的

TASKKILL /F /IM nunit.exe

要杀死在VM上运行的所有Nunit可执行文件,我是否可以明确地仅杀死上述任务中启动的进程?例如我可以存储此任务的进程ID并在以后取消管道的情况下终止这些进程吗?还是有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

我们没有这样的ID或其他东西来指定进程。一个任务可能会打开多个进程,但只能指出目标.exe和.dll。因此,您无法指定特定的进程并杀死它。

我认为您可以启动一个新的虚拟机来分离它。

答案 1 :(得分:0)

在管道定义中添加“ Process.Clean ”变量并将其设置为“ true ”应该会有所帮助。