Sb *_*Lon 6 java linux logging jenkins
我有以下Jenkins post-build shell脚本:
ssh user@my_server <<EOF
service my_service stop
service my_service start
tail -f /opt/services/my_service/logs/current
exit
EOF
Run Code Online (Sandbox Code Playgroud)
此脚本在远程主机(my_server)上重新启动my_service.
我的问题是:命令服务my_service start只是向RUNIT发出一个请求来运行my_service,即服务my_service start在执行后立即返回.
但是服务my_service start运行一个SpringBoot java Web应用程序,它将所有日志信息写入.../logs/current日志文件.为了捕获这个日志信息,我添加了命令tail -f/opt/services/my_service/logs/current,但在这种情况下,Jenkins构建永远不会结束))例如tail -f命令永远不会停止.
有没有办法执行我的后构建脚本(只在远程服务器上启动我的Web应用程序)并在2分钟内获取.../logs/current日志文件,或者直到此日志包含"Web应用程序MyApplication具有"已经开始".
我想在Jenkins的控制台输出中看到.../logs/current log file的内容并在2分钟后杀死tail -f
tail -f直到被中断才会结束,所以你的脚本永远不会完成运行。
你可以做的是grep -q在你的日志上使用,当它找到它的模式时,它将以 0 退出状态退出:
grep -q 'Web app MyApplication has been Started' <(tail -f /opt/services/my_service/logs/current)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |