1 netstat -nlp 查看占用端口号的服务
2 找到该端口号的进程
3 找到该进程id
4 kill它程序可以一点一点来:1 查看占用端口号的服务[root@www.linuxidc.com root]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 23946/
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 12711/
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3936/httpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3910/
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3753/sshd
tcp 0 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 name Path
unix 2 [ ACC ] STREAM LISTENING 827412 23946/ /tmp/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 733272 12711/ ./mysql.sock(省掉了一些内容)2 可以用grep筛选一下,看看规律,找到有 :3306 的一行就好
用管道符给grep处理:[root@www.linuxidc.com root]# netstat -nlp | grep :3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 23946/
既然取出一行了,那就容易了,再筛选一下,用awk分割取出其中一个3 读取出端口号[root@www.linuxidc.com root]# netstat -nlp | grep :3306 | awk "{print $7}"
23946/意思是取第七个字段,这里默认应该是用tab字符分割的,已经读取出来了,但是还得拿到/前面的数字4 取/前面的数字就可以了,这里还是可以用awk处理[root@www.linuxidc.com root]# netstat -nlp | grep :3306 | awk "{print $7}" | awk -F"/" "{ print $1 }"
23946意思是用/符号分割,取第一部分5 然后把这个数字传给kill就可以kill命令不能跟在管道符后面继续处理了,会出错的[root@www.linuxidc.com 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 }"["]好了,任务完成了,之后贴一下awk的介绍,挺实用的,当然,有更加精简的写法,这里只是描述思路的实现。Ubuntu 11.10 Oneiric 安装CPU 频率调节指示器Ubuntu下轻松切换GDM, LightDM , KDM相关资讯 Linux教程
- Linux教程:如何在命令行中查看目 (07/28/2014 12:22:23)
- Linux 修改root密码 (11/03/2012 07:53:38)
- su - root 与su root的区别 (06/06/2012 00:39:40)
| - Linux进程间通信:消息队列 (01/28/2013 09:43:00)
- U盘安装Linux开机无法启动解决方法 (10/07/2012 08:55:52)
- Windows 7/Linux 同步时间 (05/15/2012 06:17:55)
|
本文评论 查看全部评论 (0)