mac(osx)和ubuntu电脑查看某个端口进程是否被占用
在ubuntu电脑上使用netstat命令 ,工作当中常用的几个命令之一
有时候不确定某个服务器是否已经随服务器启动了redis或tomat或mysql这类服务器,可以使用如下命令检查,比如redis默认开启是6389端口
sudo netstat -lntp | grep ‘6379'
前面sudo 以root权限查看,如果没有加 redis如果不以当前用户身份启动,用其他身份就检测不到
netstat -lntp是主要的命令 ,后面的l n t p都分别代表运行netstat的跟随参数
| grep '6379' 是使用Linux和osx都常见的管道运算符| ,过滤输出流当中包含字符串6379的条目
如果redis已经开启,那么会有一行输出(待添加)
--------------------------------
而mac的操作系统是osx,因为osx系统内核是有 BSD 血统的 Darwin,有一部分工具跟Linux一致,而有一部分则不一样,比如具体并不支持这个netstat的用法(但osx里面也有netstat这个命令),所以如果想要实现类似的端口监听的查询,需要另寻命令,在mac上使用lsof
比如查看下mac的mysql是否开启,可以看下3306端口是否被监听,可以使用如下的命令
sudo lsof -i tcp:3306
或者使用更加简单的命令,把tcp(协议名称)也省掉
sudo lsof -i 3306
为了方便记忆,i这个参数理解为 interface 接口,接近端口的意思(强行解释)
如果已经被监听,会有如下字样输出
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 6996 _mysql 35u IPv6 0xac60233e4aa16653 0t0 TCP *:mysql (LISTEN)
如果没有被监听,则终端没有任何输出
还有时候我们需要知道有哪些端口被监听,可能是ipv4可能是ipv6,可选择执行
sudo lsof -i -P | grep -i "listen"
【存疑】这个命令似乎并不能查询出所有电脑被监听的端口列表,输出的是很少的一部分,待学习研究
注意:
1.在mac终端使用lsof的时候,需要带上sudo以root身份查看,否则很可能因为某个进程非当前用户身份运行而监测不到,比如最常用的mysql的3306端口,mac启动mysql时候用的用户名为_mysql,而不是当前登录用户
2.执行lsof命令的时候可能需要有个执行等待时间,比如执行
sudo lsof -i -P | grep -i "listen"
一般都会耗费十几秒,执行过程当中不要急着ctrl+c关闭
参考链接:
http://www.tuicool.com/articles/FBrmyyU
有时候不确定某个服务器是否已经随服务器启动了redis或tomat或mysql这类服务器,可以使用如下命令检查,比如redis默认开启是6389端口
sudo netstat -lntp | grep ‘6379'
前面sudo 以root权限查看,如果没有加 redis如果不以当前用户身份启动,用其他身份就检测不到
netstat -lntp是主要的命令 ,后面的l n t p都分别代表运行netstat的跟随参数
| grep '6379' 是使用Linux和osx都常见的管道运算符| ,过滤输出流当中包含字符串6379的条目
如果redis已经开启,那么会有一行输出(待添加)
--------------------------------
而mac的操作系统是osx,因为osx系统内核是有 BSD 血统的 Darwin,有一部分工具跟Linux一致,而有一部分则不一样,比如具体并不支持这个netstat的用法(但osx里面也有netstat这个命令),所以如果想要实现类似的端口监听的查询,需要另寻命令,在mac上使用lsof
比如查看下mac的mysql是否开启,可以看下3306端口是否被监听,可以使用如下的命令
sudo lsof -i tcp:3306
或者使用更加简单的命令,把tcp(协议名称)也省掉
sudo lsof -i 3306
为了方便记忆,i这个参数理解为 interface 接口,接近端口的意思(强行解释)
如果已经被监听,会有如下字样输出
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 6996 _mysql 35u IPv6 0xac60233e4aa16653 0t0 TCP *:mysql (LISTEN)
如果没有被监听,则终端没有任何输出
还有时候我们需要知道有哪些端口被监听,可能是ipv4可能是ipv6,可选择执行
sudo lsof -i -P | grep -i "listen"
【存疑】这个命令似乎并不能查询出所有电脑被监听的端口列表,输出的是很少的一部分,待学习研究
注意:
1.在mac终端使用lsof的时候,需要带上sudo以root身份查看,否则很可能因为某个进程非当前用户身份运行而监测不到,比如最常用的mysql的3306端口,mac启动mysql时候用的用户名为_mysql,而不是当前登录用户
2.执行lsof命令的时候可能需要有个执行等待时间,比如执行
sudo lsof -i -P | grep -i "listen"
一般都会耗费十几秒,执行过程当中不要急着ctrl+c关闭
参考链接:
http://www.tuicool.com/articles/FBrmyyU
还没人转发这篇日记