SSH远程执行脚本tomcat未启动
SSH远程执行脚本tomcat未启动 背景: 就是为了写一个重启tomcat的脚本,让jenkins编译、打包、发布时调用。在本地写好重启tomcat的脚本后,本地执行脚本没有问题,但在远程服务器上SSH免密登录执行后。 发现可以把TOMCAT杀死,但 tomcat却起不来 。这个问题困扰了我一天。终于解决了,决定写篇博文与大家分享。 把我遇到的怪异现象分享给大家: 1 脚本执行了吗?sh -x 查看脚本执行过程,确实执行了啊,也没有报错。但到目标服务器去看却没有java进程,也没有相应的端口。邪门了,到底是什么原因呢? 2 看日志。在远程执行脚本的时候就把日志打开了,tail -f 发现没有一丁点的日志输出。 3 有人说是环境变量的问题。个人感觉不是啊。我在本地可以执行脚本说明不是环境变量的问题。 原因: 有人说:这个脚本远程运行的话, 远程会话结束以后会把这个子进程干掉 。 有人说:就如同,你在本地xshell执行脚本 脚本还在跑的阶段你关闭xshell ,你怎么让脚本不停止而继续运行呢? 有人说: 你这个进程过去 ansible执行完了就没了 。我的ansible命令是这样的 ansible abcd -u root -m shell -a "sh -x /data/scripts/start_tomcat.sh" 我自己做了一个测试