【发布时间】:2015-12-25 21:14:55
【问题描述】:
我有以下 Jenkins 构建后的 shell 脚本:
ssh user@my_server <<EOF
service my_service stop
service my_service start
tail -f /opt/services/my_service/logs/current
exit
EOF
此脚本在远程主机 (my_server) 上重新启动 my_service。
我的问题是:命令 service my_service start 只是向 RUNIT 发出请求以运行 my_service,即 service my_service start 在执行后立即返回。
但是 service my_service start 运行一个 SpringBoot Java Web 应用程序,它将所有日志信息写入 .../logs/current 日志文件。为了捕获此日志信息,我添加了命令 tail -f /opt/services/my_service/logs/current 但在这种情况下,Jenkins 构建永远不会结束)),例如 tail -f 命令永不停止。
有没有办法执行我的构建后脚本(它只在远程服务器上启动我的 Web 应用程序)并在 2 分钟内抓取 .../logs/current 日志文件,或者直到该日志出现“Web app MyApplication 已启动”。
我想直接在 Jenkins 的 控制台输出 中查看 .../logs/current 日志文件的内容,并在 2 分钟后杀死 tail -f
【问题讨论】:
标签: java linux logging jenkins