likes
comments
collection
share

运维 | 查看端口/进程占用情况,终止进程

作者站长头像
站长
· 阅读数 9

在服务运行过程中,我们常常要查看整个服务器端口和进程占有的情况,甚至必要时要中断进程。今天这篇文章总结一下对我们很有帮助的几个命令。

一、lsof(list open files)

列出当前系统打开文件的工具,通过lsof工具能够查看应用程序打开文件的描述符列表,能对系统监测以及排错提供相当大的帮助。

lsof -i :portNumber   列出谁在使用某个端口

二、netstat

netstate 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

常见参数

参数说明
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n拒绝显示别名,能显示数字的全部转化成数字
-l拒绝显示别名,能显示数字的全部转化成数字
-p显示建立相关链接的程序名
-r显示路由信息,路由表
-e显示扩展信息,例如uid等
-s按各个协议进行统计
-c每隔一个固定时间,执行该netstat命令
netstat -anp |grep portNumber 查看占用某个端口的进程

三、ps

ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的

ps -ef |grep ssh

四、kill

常见参数

-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:指定要送出的信息;
-u:指定用户。
kill -l 列出所有信号名称,只有第9种信号(SIGKILL)才可以无条件终止进程
kill -9 pid 彻底杀死指定进程,init进程不可杀死,其它所有进程都是init进程的子孙