根据pid查看进程

在Linux系统中,有时我们需要查看某个进程的相关信息,而pid是唯一标识一个进程的值。下面从多个方面来讲解如何通过pid查看进程。

一、根据pid查看进程名

我们可以通过命令ps -p pid来查看指定pid的进程名。

$ ps -p 12345
  PID TTY          TIME CMD
12345 pts/1    00:00:00 bash

其中,PID表示进程的pid,CMD表示进程名。

二、根据pid查看进程启动时间

使用ps -p pid -o lstart命令来查看指定pid的进程启动时间。

$ ps -p 12345 -o lstart
           STARTED
Tue Oct 26 15:25:51 2021

其中,STARTED表示进程的启动时间。

三、根据pid查看进程命令

我们可以使用cat /proc/pid/cmdline命令来查看指定pid的进程完整命令。

$ cat /proc/12345/cmdline
bash

需要注意的是,这里得到的命令不一定是真正执行的命令,可能是由bash解释器执行的命令。

四、根据pid查看进程详情

我们可以使用ps -fp pid命令来查看指定pid的进程详细信息。

$ ps -fp 12345
UID        PID  PPID  C STIME TTY          TIME CMD
user     12345 12344  0 15:25 pts/1    00:00:00 bash

其中,UID表示进程的所有者,PPID表示进程的父进程pid,C表示进程使用的CPU百分比,STIME表示进程的启动时间,TTY表示进程的终端,TIME表示进程已经使用的CPU时间,CMD表示进程名。

五、查看pid的父进程

我们可以使用ps -p pid -o ppid命令来查看指定pid的父进程pid。

$ ps -p 12345 -o ppid
  PPID
12344

需要注意的是,进程的ppid不一定是直接父进程的pid,可能是由其他进程继承而来,因此需要进一步查看。

六、根据pid查看进程端口

我们可以使用netstat -anp | grep pid命令来查看指定pid使用的端口。

$ netstat -anp | grep 12345
tcp6       0      0 :::8000                 :::*                    LISTEN      12345/bash

其中,TCP/UDP表示传输协议,LOCAL_ADDRESS:PORT表示本地地址和端口,REMOTE_ADDRESS:PORT表示远程地址和端口,STATE表示连接状态,PID/Program_name表示进程的pid和程序名。

七、根据pid查看进程命令路径

我们可以使用which $(ps -p pid -o cmd=)命令来查看指定pid的进程命令路径。

$ which $(ps -p 12345 -o cmd=)
/bin/bash

其中,which命令可以在环境变量$PATH指定的路径中搜索命令,并返回命令的路径。

八、根据pid查看进程信息

我们可以使用cat /proc/pid/status命令来查看指定pid的进程详细信息。

$ cat /proc/12345/status
Name:   bash
Umask:  0002
State:  S (sleeping)
Tgid:   12345
Ngid:   0
Pid:    12345
PPid:   12344
TracerPid:      0
Uid:    1000    1000    1000    1000
Gid:    1000    1000    1000    1000
FDSize: 256
Groups: 16 27 30 46 121 131 1000
NStgid: 12345
NSpid:  12345
NSpgid: 12345
NSsid:  2671
VmPeak:   336652 kB
VmSize:   336652 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      1172 kB
VmRSS:       636 kB
RssAnon:          4136 kB
RssFile:         10576 kB
RssShmem:           0 kB
VmData:    114620 kB
VmStk:        132 kB
VmExe:         936 kB
VmLib:       25684 kB
VmPTE:        1148 kB
VmSwap:          0 kB

其中,Name表示进程的名字,State表示进程的状态,Tgid表示线程组ID(如果是多线程进程会有多个线程,不同线程的pid相同,但是tgid不同),Pid表示进程的pid,PPid表示进程的父进程pid,Uid表示进程所有者的UID,Groups表示所属组的GID,VmPeak表示虚存峰值,VmSize表示进程使用的虚拟内存空间大小,VmHWM表示进程使用的物理内存峰值。

九、根据pid查看进程内存占用

我们可以使用ps -p pid -o rss命令来查看指定pid的内存占用。

$ ps -p 12345 -o rss
  RSS
 6868

其中,RSS表示占用的物理内存大小,单位为KB。

十、Linux根据pid查看进程

除了以上介绍的命令,我们还可以使用其他命令来查看进程,比如tophtop等。这些工具可以动态展示当前系统的进程情况,提供更加丰富的信息,方便我们进行进程管理。

原创文章,作者:XFCED,如若转载,请注明出处:https://www.506064.com/n/369124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
XFCEDXFCED
上一篇 2025-04-12 13:00
下一篇 2025-04-12 13:00

相关推荐

  • Python根据表格数据生成折线图

    本文将介绍如何使用Python根据表格数据生成折线图。折线图是一种常见的数据可视化图表形式,可以用来展示数据的趋势和变化。Python是一种流行的编程语言,其强大的数据分析和可视化…

    编程 2025-04-29
  • 如何通过jstack工具列出假死的java进程

    假死的java进程是指在运行过程中出现了某些问题导致进程停止响应,此时无法通过正常的方式关闭或者重启该进程。在这种情况下,我们可以借助jstack工具来获取该进程的进程号和线程号,…

    编程 2025-04-29
  • mysessioncontext 根据jessionid获取session为空解决方法

    当我们在使用web应用程序开发时,mysessioncontext 根据jessionid获取session为空是一个常见的错误。为了避免这个错误的发生,我们必须了解什么是sess…

    编程 2025-04-28
  • 如何使用Java List根据某一字段升序排序

    本文将详细介绍在Java中如何使用List集合按照某一字段进行升序排序。具体实现思路如下: 一、定义需要进行排序的Java对象 首先,我们需要定义一个Java对象,该对象包含多个字…

    编程 2025-04-27
  • Java中的僵尸进程简介与解决方法

    本文将对Java中的僵尸进程进行详细阐述,并给出几种解决方法。 一、僵尸进程的概念 在操作系统中,进程是指正在执行的程序。当一个进程创建了一个子进程,而该子进程完成了任务却没有被父…

    编程 2025-04-27
  • 多线程和多进程的应用

    多线程和多进程是现代编程中常用的技术,可以提高程序的效率和性能。本文将从不同的角度对多线程和多进程进行详细的介绍和应用。 一、多线程 vs 多进程 多线程和多进程都是为了实现程序并…

    编程 2025-04-27
  • Python多进程读取数据

    本文将从多个方面详细阐述在Python中如何通过多进程读取数据,并给出完整的代码示例。 一、多进程概述 在计算机科学中,进程是正在执行的程序实例。多进程是指计算机系统同时执行多个进…

    编程 2025-04-27
  • 进程a与进程b共享变量s1

    本文将从多个方面对进程a与进程b共享变量s1做详细的阐述,并给出代码示例。 一、定义全局变量s1 进程a与进程b共享变量s1,意味着s1是一个全局变量。在C语言中,可以使用关键字e…

    编程 2025-04-27
  • python多进程并行循环

    在大数据时代,我们通常需要处理大量的数据。处理大数据往往需要较长的时间,影响效率。Python提供了多线程、多进程等并行处理方式来提高数据处理效率。本文将主要讲解python多进程…

    编程 2025-04-27
  • Python进程池共享内存用法介绍

    本文将从多个方面详细阐述Python进程池共享内存的相关知识,包括如何使用进程池、进程池的实现原理、进程池中的共享内存管理等。本文内容将涵盖: 一、进程池的使用 进程池是一种有效的…

    编程 2025-04-27

发表回复

登录后才能评论