linux 端口被占用,linux端口号被占用解决方法

linux 端口被占用,linux端口号被占用解决方法,第1张

1."linux端口占用怎么解决,为您提供linux端口被占用怎么解决图文信息,打开linux系统,在linux的桌面的空白处右击。

2.在d出的下拉选项里,点击打开终端。

3.在终端窗口中输入netstat-tln|grep+被占端口命令。

4.输入lsof-i:+被占端口命令,回车后可查看端口被哪个进程占用。

5.输入kill-9+进程id命令,回车后即可杀死占用端口的进程。

最近在linux服务器上部署应用,总是出现端口被占用的情况,有时关闭软件,kill进程也会出现端口占用。

下面以80端口为例,列出详细解决过程

1.查找被占用的端口

 COMMAND   PID   USER   FD   TYPE   DEVICE    SIZE/OFF    NODE      NAME

   Java             14576  root     36u   IPv6    35452317    0t0         TCP *:pcsync-https (LISTEN)

  # netstat -anp 查看端口使用情况

  # netstat -anp | grep 80 只查看端口80的使用情况

2.查看端口属于哪个程序?端口被哪个进程占用

3. 杀掉占用端口的进程

1 netstat -nlp 查看占用端口号的服务

2 找到该端口号的进程

3 找到该进程id

4 kill它

程序可以一点一点来:

1 查看占用端口号的服务

[root@aslibra root]# netstat -nlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp0 0 0.0.0.0:33060.0.0.0:* LISTEN 23946/

tcp0 0 0.0.0.0:33070.0.0.0:* LISTEN 12711/

tcp0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3936/httpd

tcp0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3910/

tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3753/sshd

tcp0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3786/

Active UNIX domain sockets (only servers)

Proto RefCnt Flags Type State I-Node PID/Program namePath

unix 2 [ ACC ] STREAM LISTENING 827412 23946/ /tmp/mysql.sock

unix 2 [ ACC ] STREAM LISTENING 733272 12711/ ./mysql.sock

(省掉了一些内容)

2 可以用grep筛选一下,看看规律,找到有 :3306 的一行就好

用管道符给grep处理:

[root@aslibra root]# netstat -nlp | grep :3306

tcp0 0 0.0.0.0:33060.0.0.0:* LISTEN 23946/

既然取出一行了,那就容易了,再筛选一下,用awk分割取出其中一个

3 读取出端口号

[root@aslibra root]# netstat -nlp | grep :3306 | awk '{print $7}'

23946/

意思是取第七个字段,这里默认应该是用tab字符分割的,已经读取出来了,但是还得拿到/前面的数字

4 取/前面的数字就可以了,这里还是可以用awk处理

[root@aslibra root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }'

23946

意思是用/符号分割,取第一部分

5 然后把这个数字传给kill就可以

kill命令不能跟在管道符后面继续处理了,会出错的

[root@aslibra root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }' | kill

kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec]

需要用到"[']" *** 作符,它可以执行一个语句,这个可以如此执行:

kill [']netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }'[']


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8509584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存