linux screen - 只有在它存在时才会被杀死(jenkins job)

时间:2013-02-08 11:55:15

标签: jenkins kill gnu-screen

我正在使用linux屏幕配置复杂的jenkins作业。要创建一个新屏幕,我运行:

screen -md -S jenkins_job

然后去做其他工作,最后破坏我运行的现有屏幕:

screen -S jenkins_job -X quit

但是在jenkins中可能会发生脚本在中间某处失败并立即中止的情况。然后屏幕终止命令将不会执行,屏幕将保持活动状态。因此,在工作开始时,我想确保所有屏幕都被销毁。如果我在不存在的作业shell上使用screen -S jenkins_job -X quit将返回错误代码,jenkins脚本也会失败。

有没有办法有条不紊地销毁一个屏幕(即如果它存在则销毁屏幕,否则什么都不做)?

1 个答案:

答案 0 :(得分:3)

您可能希望将终止代码放入trap调用:

trap 'screen -S jenkins_job -X quit' QUIT TERM INT EXIT