Linux ps 与 netstat 命令

根据端口或者服务名称查询进程号

一、ps -ef | grep 端口号/服务名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-A :列出所有的进程(等价于 -e)
-w :显示加宽可以显示较多的资讯
-au:显示较详细的资讯
-aux:显示所有包含其他使用者的行程
-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
-c:显示 CLS 和 PRI 栏位。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:显示所有程序。
-f:显示 UID,PPIP,C 与 STIME 栏位。
-H:显示树状结构,表示程序间的相互关系。
-u:<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
-j:采用工作控制的格式显示程序状况
-l 或 l:采用详细的格式来显示程序状况。
-N:显示所有的程序,除了执行 ps 指令终端机下的程序之外。

如:

1
2


命令输出结果属性的意义:

UID PID PPID C STIME TTY TIME CMD
用户 进程 ID 父进程 ID 占用的 CPU 使用率 该进程执行开始时间 登录者的终端位置 进程启动时间 所执行的指令

可以直接使用 ps -ef 来查看栏位名称:

1
2
3
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 6月06 ? 00:02:23 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

二、ps -aux/-au | grep 端口号/服务名称

1
-aux:显示用户所有进程和其状态。

如:

1
2


命令输出结果属性的意义:

UID PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
用户 进程 ID 进程占用的CPU百分比 占用内存的百分比 该进程使用的虚拟內存量(KB) 占用的固定內存量(KB)(驻留中页的数量) 登录者的终端位置 状态 进程启动时间 执行的时间 所执行的指令
  • STAT列标志位:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    S  睡眠(sleeping)。通常是在等待某个事件的发生,如一个信号或有输入可用
    R 运行(running)。 严格来说,应是“可运行”,即在运行队列中,处于正在执行或即将运行状态
    D 不可中断的睡眠(等待)。通常是在等待输入或输出完成
    T 停止(terminate)。通常是被shell作业控制所停止,或者进程正处于调试器的控制之下
    Z 僵尸进程(zombie),通常是该进程已经死亡,但父进程没有调用 wait 类函数来释放该进程的资源
    N 低优先级任务(nice)
    s 进程是会话期首进程
    + 进程属于前台进程组
    l 进程是多线程的
    < 高优先级任务

可以直接使用 ps -aux 来查看栏位名称:

1
2
3
$ ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 194328 4920 ? Ss 6月06 2:23 /usr/lib/systemd/systemd --switched-root --system --deserialize

Note that “ps -aux” is distinct from “ps aux”. The POSIX and UNIX standards require that “ps -aux” print all processes owned by a user named “x”, as well as printing all processes that would be selected by the -a option. If the user named “x” does not exist, this ps may interpret the command as “ps aux” instead and print a warning.
This behavior is intended to aid in transitioning old scripts and habits. It is fragile, subject to change, and thus should not be relied upon.

转自:Linux查看服务与进程 ——-ps-aux & ps-ef

三、netstat -anp | grep 端口号

参考:linux用netstat查看服务及监听端口

1
2
> netstat -anp | grep  8082
tcp6 0 0 :::8082 :::* LISTEN 33232/java

输出结果后面的 33232 即为进程号。

根据进程号查询服务来源程序

ps aux | grep pid

1
2
3
> ps aux | grep 124818
root 6970 0.0 0.0 112724 988 pts/10 S+ 08:57 0:00 grep --color=auto 124818
root 124818 1.1 4.6 25242416 3079260 pts/5 Sl+ 9月25 7:05 java -jar xxx-0.0.1-SNAPSHOT.war
分享到:
Disqus 加载中...

如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理