在实际项目开发中会用到很多优秀的项目,比如jeecg,就是一款优秀开源的RBAC模型的项目。
能够有效的提供开发效率,为小项目提供敏捷开发的一种方式。
jeecg部署到centos环境 ,并部署到tomcat中遇到问题。
重启tomcat时报Error was Port already in use: 40001 错误。
原因:jeecg使用的本地缓存ehcache技术并占用40001端口,可以从ehcache.xml 文件中看到
解决办法:查找40001端口占用的进程号,然后kill掉
一般使用 lsof -i:40001
然后 kill -9 进程号
然后我就写了一个命令,一条命令解决。
kill -9 `lsof -i:40001 |awk 'NR==2{print $2}'`
可以把这条命令放入 tomcat startup.sh 或者 shutdown.sh中
或者单独搞一个脚本restartTome.sh
#!/bin/bash
set -m
echo > /usr/local/apache-tomcat-7.0.62/logs/catalina.out
/usr/local/apache-tomcat-7.0.62/bin/shutdown.sh
kill -9 `lsof -i:40001 |awk 'NR==2{print $2}'`
/usr/local/apache-tomcat-7.0.62/bin/startup.sh
tail -f /usr/local/apache-tomcat-7.0.62/logs/catalina.out
这里要注意的是 set -m 这个关键的地方一定要添加。不信你就别加。-。-