linux 下查看进程被占用情况

本文详细介绍了如何在Linux环境下使用netstat、lsof等命令来检查特定端口(如859端口)的占用情况,并追踪到对应的进程ID。通过进一步查询进程信息,我们可以得知该端口是由名为Tomcat的Java进程占用。

使用 netstat   -anp   |   grep  portno

    即:netstat –apn | grep 8080

    linux下查看端口占用情况:

    1.查看哪个进程占用了819端口:

    case9-sghfofo:/usr/local/cnbj/tomcat-bj/bin # lsof -i:859

    运行后的结果:

    COMMAND   PID USER   FD   TYPE    DEVICE SIZE NODE NAME

    java    24907 root   31u  IPv4 248905027       TCP *:859 (LISTEN)

    由以上我们知道了859端口被进程号为24907的进程占用了, 是个java进程。

    2.查看进程号为24907的进程在哪里:

    case9-sghfofo:/usr/local/cnbj/tomcat-bj/bin # ps -ef|grep 24907

    root     13421 29276  0 20:08 pts/2    00:00:00 grep 24907

    root     24907     1  0 11:43 pts/4    00:03:53 /usr/java/jdk1.6.0_13/bin/java -server -XX:PermSize=256M -XX:MaxPermSize=512m -Xbootclasspath/p:java-net-Socket.jar -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/cnsh/tomcat-sh/conf/logging.properties -Djava.endorsed.dirs=/usr/local/cnsh/tomcat-sh/bin/endorsed -classpath :/usr/local/cnsh/tomcat-sh/bin/bootstrap.jar -Dcatalina.base=/usr/local/cnsh/tomcat-sh/bin -Dcatalina.home=/usr/local/cnsh/tomcat-sh/bin -Djava.io.tmpdir=/usr/local/cnsh/tomcat-sh/bin/temp -Xmx512m -Xms256m org.apache.catalina.startup.Bootstrap start

    由以上我们知道是目录为/usr/local/cnsh/tomcat-sh/bin/的tomcat占用了。

提供的引用未提及在Linux系统下使用Java查看进程中线程内存占用情况的具体方法。不过可以提供通用思路: 在Java中,可以利用`ManagementFactory`类获取线程和内存的管理接口。`ThreadMXBean`可用于获取线程相关信息,`MemoryMXBean`可用于获取内存相关信息。但这些接口主要侧重于整体的线程和内存信息,无法直接获取单个线程的内存占用情况,因为Java本身没有直接提供这样的功能。 以下是一个简单的示例代码,用于获取线程的基本信息: ```java import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; public class ThreadMemoryUsage { public static void main(String[] args) { // 获取ThreadMXBean实例 ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); // 获取所有线程的ID long[] threadIds = threadMXBean.getAllThreadIds(); // 遍历每个线程 for (long threadId : threadIds) { // 获取线程信息 ThreadInfo threadInfo = threadMXBean.getThreadInfo(threadId); System.out.println("Thread ID: " + threadId + ", Thread Name: " + threadInfo.getThreadName()); } } } ``` 要准确获取单个线程的内存占用,可能需要借助操作系统层面的工具。在Linux系统中,可以使用`top`命令结合特定参数查看进程的内存和CPU使用情况,但同样无法直接查看单个线程的内存占用。可通过`top -Hp <pid>`命令查看指定进程下的所有线程信息,其中`<pid>`是Java进程的ID。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值