Author:youngdou Site: 转载请注明出处 yongdou.tk
最近启动自己的项目的时候来时出现这个错误
caused by: java.net.BindException: 地址已在使用我的项目用了8080端口,应该是8080端口被占用了
先找到占用这个端口的进程,然后kill掉就可以了
young@YOUNG:~$ sudo netstat -anp | grep 8080 [sudo] young 的密码: tcp6 0 0 :::8080 :::* LISTEN 1423/java young@YOUNG:~$ sudo kill -9 1423但是这样的方法下,每次启动都要kill一次,为了以绝后患,最好还是进行彻底的清查(也许还会清除出黑客的cracker也不一定呢)
发现占用8080端口的是http-proxy(http代理)
这是啥呢?我们继续深入探究一下下
young@YOUNG:/etc/lighttpd/conf-enabled$ sudo lsof -i:8080 [sudo] young 的密码: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 1423 tomcat7 54u IPv6 19148 0t0 TCP *:http-alt (LISTEN)成功发现这玩意原来是我安装的tomcat7所自动的 我们知道,Linux中,开机自启动的程序启动脚本在 /etc/init.d/文件夹下的,我们寻根问底,一起过去look look什么情况
young@YOUNG:/etc/init.d$ ls /etc/init.d/ | grep tomcat tomcat7
果然,有一个开机自启动的脚本。怎么办呢?直接删掉也许不太安全,所以我们可以使用一下的方法
下面关闭开机自启动
young@YOUNG:/etc/lighttpd/conf-enabled$ update-rc.d tomcat7 remove Command 'update-rc.d' is available in '/usr/sbin/update-rc.d' The command could not be located because '/usr/sbin' is not included in the PATH environment variable. This is most likely caused by the lack of administrative priviledges associated with your user account. update-rc.d: command not found咦,权限不够诶,当然啦。 这里插一句:update-rc.d是系统管理员级别权限的命令,只能加sudo使用。不然万一被别有用心的一般用户就能使用来设置自启动的监控和后门程序,那主机可就沦为肉鸡了。
anyway,反正这样就可以了
young@YOUNG:/etc/lighttpd/conf-enabled$ sudo update-rc.d tomcat7 remove真的可以了吗,我们继续查看/etc/init.d/下是否还有tomcat7脚本
young@YOUNG:/etc/init.d$ ls /etc/init.d/ | grep tomcat果然没有了,还不信的话重启一下来看看呗。
young@YOUNG:~$ sudo netstat -anp | grep 8080
嘿嘿,果然啥都没有了。
以上。
