ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after XXX ms

31 篇文章 0 订阅
12 篇文章 0 订阅

jenkins执行脚本不退出

我遇到的错误如下:

错误信息

错误信息

我在使用Jenkins进行远程部署时,构建后执行的脚本没有正常退出导致。
我的脚本没有写错,干的事情就是启动项目。
而导致它没有正常退出的原因是:
Since you are executing a script from a non-TTY environment; The Jenkins is not able to get the exit properly, out of your script.

意思是:因为你是从一个非tty环境执行脚本;Jenkins不能正常从你的脚本中退出。

解决办法:

这里写图片描述

外国网友解释:

Since you are executing a script from a non-TTY environment; The Jenkins is not able to get the exit properly, out of your script.

What you want is to exit immediately, after script execution! Don't want to wait for the entire timeout to happen and then disconnect improperly!

Solution: Make it Exec in PTY. (Please tick the check-box as shown in attached screenshot)

参考地址:http://stackoverflow.com/questions/11290540/jenkins-text-finder-unable-to-success-my-build/22011893#22011893

我最近(2016-10-25)在配置新项目时,发现,即使是勾选了Exec in pty,出现了项目不能启动的问题。

这里写图片描述
这里写图片描述

执行的结果是项目没有启动:

这里写图片描述

之后我又去查资料,依然是在那个外国网站的下面一个人回答中,找到了解决的方法!
可能的原因是因为,在执行openapi start 命令时,刚启动,pty(伪终端)就断开连接,
解决的办法就是,让脚步在后台运行,也就即使伪终端断开了,项目依然可以启动完成。

之后我执行的脚本改为
nohup sh ggf10service.sh
其实就是在前面加上nohup;
外国网友后面还加了sleep 1:`nohup sh ggf10service.sh & sleep 1`,
我没有加也可以!
这里还需要注意的地方是,启动成功后,Jenkins控制台会打印这么一句话
nohup: ignoring input and appending output to `nohup.out'
也就是说,当我们使用nohup命令的的时候,日志会被打印到nohup.out文件中去。
如果我们不做任何处理,会随着每次的重新启动,nohup.out会越来越大。
所以我在我执行的脚本中添加了
cp /dev/null nohup.out
这样每次启动时,都会先清空掉这个文件。
  • 14
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山鬼谣me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值