我正在使用linux屏幕配置复杂的jenkins作业。要创建一个新屏幕,我运行:
screen -md -S jenkins_job
然后去做其他工作,最后破坏我运行的现有屏幕:
screen -S jenkins_job -X quit
但是在jenkins中可能会发生脚本在中间某处失败并立即中止的情况。然后屏幕终止命令将不会执行,屏幕将保持活动状态。因此,在工作开始时,我想确保所有屏幕都被销毁。如果我在不存在的作业shell上使用screen -S jenkins_job -X quit
将返回错误代码,jenkins脚本也会失败。
有没有办法有条不紊地销毁一个屏幕(即如果它存在则销毁屏幕,否则什么都不做)?
答案 0 :(得分:3)
您可能希望将终止代码放入trap
调用:
trap 'screen -S jenkins_job -X quit' QUIT TERM INT EXIT