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