环境:jenkins+ansible+tomcat
脚本单独执行更新是没有问题的,服务也可以正常的启动
通过jenkins和ansible进行自动更新后,发现服务并没有启动,经过检查后发现,服务应该是启动后又被停止了
猜想可能是1.ansible shell模块执行完shell脚本,就立即关闭当前的shell,进程也就被关闭了。
ansible fork出来子线程来运行脚本,ansible正常退出时会结束所有fork的子线程因为程序启动后被关闭.
尝试解决: 给shell命令开头加个nohup
ansible -i hosts $1 -m shell -a "nohup /root/update.sh $1"