忽略失败的进程管理器命令

问题描述

我有带有下一个命令的 Jenkins 文件

sh "pm2 delete some-process"
sh "pm2 start some-new-process"

如果没有“某个进程”在运行,则此命令将失败并且下一个命令不会运行。如何忽略失败命令结束切换到下一个命令?

解决方法

使用 try {} catch() {} 块或 catchError() 步骤。像这样:

catchError(buildResult: 'SUCCESS',stageResult: 'SUCCESS') {
    sh "pm2 delete some-process"
}
sh "pm2 start some-new-process"
try {
    sh "pm2 delete some-process"
}
catch(Exception e) {
    print("Error stopping pm2: ${e}")
}
sh "pm2 start some-new-process" 

最好的问候!