当ansible正常退出时,远程启动的程序进程被关闭。
原因:可能是ansible fork出来子线程来运行脚本,ansible正常退出时会结束所有fork的子线程
解决方法:
- 程序在后台运行可以解决
nohup ** & nohup su - fuck /home/a/tomcat/bin/catalina.sh start 1>2& &
- 也可以使用pssh 批量启动程序
- pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。杀手锏是文件并行复制,,当进行再远程主机批量上传下载的时候,最好使用它。
- 在使用pssh之前,必须要保证管理主机和本地主机进行过密钥的认证,或者是在进行批量时,没有做过密钥认证,但是必须保证被管理的多台主机的密码相同。