linux服务器如何看运行的java程序有哪些(ps、jps、top、lsof、netstat、ss命令等)
创始人
2024-09-26 04:21:46
0

目录

1. 使用ps命令

2. 使用jps命令

3. 使用pgrep和pkill

4. 使用top或htop

5.根据端口占用情况找到pid

lsof

netstat

ss

ss命令的过滤功能

ss命令的优势

案例:发现占用7300端口的程序,并关掉

1. 发现占用7300端口的程序PID

​编辑

2. 停掉占用7300端口的程序

总结


在Linux服务器上查看正在运行的Java程序,你可以使用几种不同的方法。这些方法包括使用ps命令、jps命令(如果已安装Java Development Kit (JDK))、以及pgreptophtop等工具。下面是一些常用的方法:

1. 使用ps命令

ps命令是最常用的工具之一,用于显示当前进程的快照。要查找所有Java进程,你可以使用grep命令来过滤结果:

ps -ef | grep java

 

这个命令会列出所有包含"java"的行,这通常意味着它们是Java进程。-ef选项用于显示完整的格式信息。


2. 使用jps命令

jps(Java Virtual Machine Process Status Tool)是JDK提供的一个工具,用于列出当前所有Java虚拟机实例的ID以及主类(main class)的名称(如果有的话)。要使用jps,你需要确保已经安装了JDK,并且jps命令在你的PATH中。

jps -l

-l选项会输出主类的全名,如果不加-l,则只显示JVM的ID和主类的简短名称(或主类的jar包名称)。


3. 使用pgreppkill

pgrep命令用于查找匹配条件的进程ID。要查找所有Java进程,可以使用:

pgrep java

 

这会列出所有名为"java"的进程的PID。如果你想要基于这些PID做进一步的操作(比如杀死这些进程),可以结合使用pkillpgrep的"kill"版本)或kill命令。


4. 使用tophtop

top命令提供了一个实时的视图,显示了系统上正在运行的进程及其资源使用情况(如CPU和内存)。虽然它默认不会直接过滤出Java进程,但你可以通过按下f键来定制显示的字段,并通过添加COMMAND字段(如果尚未选中)来更容易地识别Java进程。

htoptop的一个增强版本,提供了一个更友好的用户界面和更多的功能,包括通过按F3/来搜索特定命令(如"java")的进程。

更多top命令使用


5.根据端口占用情况找到pid

lsof

lsof(list open files)是一个在Linux环境下用于列出当前系统打开文件的工具。由于Unix/Linux系统认为“一切皆文件”,因此通过lsof可以查看用户和进程操作了哪些文件,也可以查看系统中网络的使用情况,以及设备的信息。

lsof命令的输出包含了多列信息,每列都有特定的含义:

  • COMMAND:进程的名称。
  • PID:进程标识符。
  • USER:进程所有者。
  • FD:文件描述符,应用程序通过文件描述符识别该文件。
  • TYPE:文件类型。
  • DEVICE:指定磁盘的名称。
  • SIZE:文件的大小。
  • NODE:索引节点(文件在磁盘上的标识)。
  • NAME:打开文件的确切名称。
  1. 列出某个进程打开的所有文件

    lsof -p 1234
     

    这会列出进程号为1234的进程所打开的所有文件。

  2. 列出某个用户打开的文件

    lsof -u root
     

    这会列出root用户打开的所有文件。

  3. 查看某个端口的使用情况

    lsof -i :80
     

    这会列出所有打开80端口的进程。

  4. 查看连接到某个IP地址和端口的进程

    lsof -i @192.168.1.1:22

    这会列出所有连接到IP地址192.168.1.1的22端口的进程。

  5. 列出所有打开的网络连接

    lsof -i

    这会列出所有打开的网络连接,包括TCP和UDP连接。

  • 由于lsof需要访问核心内存和各种文件,因此通常需要以root用户身份运行。
  • 在使用lsof命令时,可以组合多个参数来满足复杂的查询需求。
  • 默认情况下,lsof的输出可能会包含很多信息,可以通过grep等工具进行过滤,以获取更具体的结果。

netstat

netstat(网络统计)是一个在Linux系统中广泛使用的命令行工具,用于显示网络连接、路由表、接口统计、多播成员等信息。它对于网络故障排除、性能监测以及安全审计等方面都非常有用。

  1. 显示所有连接和监听端口

    netstat -a

    这会显示所有当前活动的TCP、UDP连接和所有正在监听的端口。

  2. 显示TCP连接

    netstat -t
     

    仅显示当前活动的TCP连接及其状态。

  3. 显示UDP连接

    netstat -u

    仅显示当前活动的UDP连接。

  4. 以数字形式显示所有连接和监听端口

    netstat -an

    这可以加快输出速度,特别是在有大量连接时。

  5. 显示与特定端口关联的进程信息

    netstat -anp | grep 端口号

    注意:在某些系统中,可能需要root权限才能显示进程信息。

  6. 显示路由表

    netstat -r
     

    显示系统的路由表,了解数据包如何在网络中进行路由。

  7. 显示网络接口信息

    netstat -i

    显示网络接口的统计信息,包括接收和发送的数据包数、错误数等。

  8. 连续显示网络状态信息

    netstat -c 5

    每5秒更新一次网络状态信息,直到用户中断。

netstat是一个非常强大的网络分析工具,通过不同的选项和参数组合,可以灵活地显示各种网络连接和统计信息。它对于网络管理员和开发人员来说是一个不可或缺的工具,能够帮助他们更好地管理和维护Linux系统中的网络环境。

需要注意的是,随着Linux系统的不断发展和更新,一些新的工具(如ss命令)逐渐出现并提供了类似或更强大的功能。然而,netstat命令仍然因其简单性和易用性而受到许多用户的喜爱。


ss

ss命令是Socket Statistics的缩写,也被称为IPC(Inter-Process Communication)套接字统计。它是Linux下一个强大的网络管理命令,主要用于获取系统中socket的统计信息。ss命令的功能与netstat类似,但相比netstat,ss命令能显示更多更详细的TCP和连接状态的信息,并且在处理大量socket连接时更快更高效。这是因为ss命令直接利用了TCP协议栈中的tcp_diag模块,这个模块可以获得Linux内核中的第一手信息,因此其性能优于其他工具。

ss命令的基本语法为:

ss [选项] [过滤器]

其中,选项和过滤器可以根据需要进行设置,以满足不同的查看需求。

  1. 显示所有TCP套接字信息

    ss -t -a

    此命令会列出所有TCP套接字的信息,包括监听和非监听状态的套接字。

  2. 显示所有UDP套接字信息

    ss -u -a

    此命令会列出所有UDP套接字的信息。

  3. 显示所有监听状态的套接字及其对应的进程信息

    ss -l -p

    此命令会列出所有处于监听状态的套接字,并显示与之关联的进程信息。

  4. 以数字格式显示所有套接字信息及其统计摘要

    ss -n -s

    此命令会以数字格式显示所有套接字的信息及其统计摘要。

ss命令的过滤功能

ss命令还支持使用过滤器来提供更精确的查询结果。例如,可以通过IP地址、端口号、状态等来筛选所需的信息。例如:

  • 查看所有已建立的TCP连接

    ss state ESTABLISHED

  • 查看特定IP地址和端口的连接

    ss dst 192.168.1.1:80

ss命令的优势
  1. 更详细的信息:ss命令能显示更多更详细的TCP和连接状态的信息。
  2. 更快的性能:在处理大量socket连接时,ss命令比netstat更快更高效。
  3. 直接利用内核信息:ss命令直接利用了内核的TCP连接跟踪状态信息,避免了像netstat那样通过/proc接口获取数据的开销。

综上所述,ss命令是Linux下一个非常强大且实用的网络管理命令,它能够帮助系统管理员更好地监控和管理系统的网络连接状态。


案例:发现占用7300端口的程序,并关掉

1. 发现占用7300端口的程序PID

sudo lsof -i :7300  
sudo ss -ltnp | grep :7300 

2. 停掉占用7300端口的程序

一旦你找到了占用7300端口的进程PID,你可以使用kill命令来停掉它。如果你已经知道PID,则运行:

sudo kill 84292

 

如果进程没有响应,你可能需要使用kill -9来强制终止它:

sudo kill -9 84292

 

请注意,使用kill -9是强制终止进程,可能会导致数据丢失或其他副作用,因此应该谨慎使用。

总结

  • 使用lsof -i :8080ss -ltnp | grep :8080来查找占用8080端口的进程PID。
  • 使用kill PIDkill -9 PID来停掉该进程。

相关内容

热门资讯

安卓10系统更新关闭,全面优化... 你知道吗?最近安卓系统又来了一次大动作,那就是安卓10系统的更新关闭了!这可真是让人有点摸不着头脑,...
安卓系统的文件加密,Andro... 你知道吗?在咱们这个数字化时代,保护隐私和安全变得比以往任何时候都重要。尤其是对于安卓系统用户来说,...
使用安卓系统的费用,全面了解使... 你有没有想过,为什么有些人拿着安卓手机,而有些人却选择了苹果?这其中可不仅仅是品牌喜好那么简单,使用...
vivo用原生安卓系统下载,尽... 你有没有发现,现在手机市场真是热闹非凡,各种品牌争奇斗艳,让人眼花缭乱。不过,今天我要给你安利的,可...
安卓系统好用的桌面时钟,实用好... 你有没有发现,手机里的时钟功能有时候比闹钟还重要呢?想象每天早上被它温柔地叫醒,或者在忙碌的工作间隙...
安卓系统导航车载用优盘,安卓车... 你有没有想过,开车的时候,手机导航虽然方便,但有时候屏幕太小,看不清路线?别急,今天就来给你安利一个...
正确使用电池安卓系统,无忧体验 你知道吗?现在这个智能手机时代,电池续航能力可是大家关注的焦点。尤其是安卓系统用户,电池使用得当与否...
玩吧安卓可以和苹果系统,畅享游... 你知道吗?现在这个时代,手机可是我们生活中不可或缺的好伙伴。不管是安卓还是苹果,它们各有各的特色,各...
安卓系统怎么去掉hd,恢复纯净... 你是不是也和我一样,对安卓手机的系统设置充满了好奇?尤其是那个让人眼花缭乱的“HD”标识,有时候看着...
电脑安卓系统性能表,电脑版性能... 你有没有发现,现在手机电脑的操作系统越来越丰富,尤其是安卓系统,简直就像是个万能的小精灵,啥都能干。...
如何玩转机车安卓系统,玩转机车... 你有没有想过,拥有一台酷炫的机车安卓系统,让你的手机瞬间变身成为一辆会跑的摩托车?想象你可以在手机上...
安卓系统网页怎么回顶部,按钮才... 你是不是在使用安卓系统的手机或平板电脑浏览网页时,不小心翻到了页面底部,现在想回到顶部,却有点摸不着...
为什么安卓系统要认证,安卓系统... 你知道吗?安卓系统最近可是掀起了一阵认证热潮,这可不仅仅是简单的更新换代那么简单哦!为什么安卓系统要...
安卓50原生系统手机,功能革新... 你有没有发现,最近你的安卓手机突然变得不一样了?是不是因为它的系统升级到了安卓50原生系统呢?没错,...
安卓永远比不了的系统,永远无法... 你有没有想过,为什么安卓系统永远比不了某些其他系统呢?是不是每次看到那些流畅无阻、功能强大的设备,心...
安卓8怎么升级11系统,解锁新... 你有没有发现,你的安卓手机已经有点儿“老态龙钟”了?别急,别急,今天就来教你怎么给它来个青春焕发的大...
双系统安卓笔记本,开启移动办公... 你有没有想过,一台既能流畅运行安卓应用,又能轻松驾驭Windows系统的笔记本,会是怎样的体验呢?没...
安卓系统调降噪通透软件,打造清... 你有没有发现,最近你的安卓手机在听音乐或者打电话的时候,声音变得超级清晰,仿佛置身于现场?这可不是你...
安卓系统包后缀名,包后缀名背后... 你有没有发现,每次下载安卓应用时,文件名后面总会有那么几个神秘的字母组合,像是“apk”、“jar”...
安卓系统好用的工作软件,盘点十... 你有没有发现,自从你把手机里的安卓系统升级后,工作效率好像提高了不少呢?今天,就让我来给你细细道来,...