我有以下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
以下bash脚本的结果是输出中的"空行"
ssh dev@my_service <<EOF
START_SERVICE_TIME_IS_UP=124
echo $START_SERVICE_TIME_IS_UP
exit
EOF
Run Code Online (Sandbox Code Playgroud)
无法理解为什么.我希望在输出中看到"124".远程服务器正在运行Red Hat linux.