Linux进程相关命令使用场景
Linux进程相关命令使用场景
在Linux系统上工作时,我们常常会碰到很多和进程相关的查询场景,今天在这里进行详细的讲解,进程相关的对象包括以下几个:
- 端口:Port
- 进程号:PId
- 执行文件所在路径:executePath
从端口号到进程号
使用lsof -i:PortId进行查找(该命令只能使用root用户的身份运行),可以找到占用该端口的进程信息,如下:
| COMMAND | PID | USER | FD | TYPE | DEVICE | SIZE/OFF | NODE | NAME |
|:---|---:|
| svnserve | 29080 | root | 3u | IPv4 | 1075776 | 0t0 |TCP | *:svn (LISTEN)
COMMAND:进程名
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点
NAME:打开文件的确切名称
提示:lsof(list open files)本质上是显示系统打开的文件,Linux系统上所有的内容都以文件的形式存在,所以如果某个端口被某个进程监听了,那么一定存在相应的文件,lsof显示的信息就是这个文件的信息。
从进程号到执行文件位置
使用lsof -p PId进行查找(该命令只能用root用户的身份运行),可以找到相关文件的路径,如下所示:
|COMMAND | PID |USER| FD | TYPE | DEVICE| SIZE/OFF| NODE| NAME|
|:----------|-------:|
|dockerd-c |2884| root| cwd| DIR | 8,2| 224 | 64 |/|
|dockerd-c| 2884 |root | rtd | DIR | 8,2 | 224 | 64 |/|
|dockerd-c| 2884 |root| txt | REG | 8,2| 33358400 | 25379352| /usr/bin/dockerd-current|
|dockerd-c| 2884 |root | mem | REG| 8,2| 61624 | 141124 |/usr/lib64/libnss_files-2.17.so|
|dockerd-c| 2884 |root | mem | REG | 8,2 | 68192 | 13282 |/usr/lib64/libbz2.so.1.0.6|
在最后的一列的Name中应该就包含你需要寻找的路径
从进程名称到进程号
使用ps aux | grep PName进行查找,如下所示:
|USER | PID |%CPU |%MEM | VSZ | RSS |TTY | STAT| START | TIME |COMMAND|
|:-----
|root | 2884 | 0.0 | 2.8 |735672 |28660 |? | Ssl | 05:04 | 0:18 |/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json --selinux-enabled=false --insecure-registry gcr.io --storage-driver overlay2|
其实在ps aux的查询中可以找到命令的路径,只是看上去不那么好看而已
总结
所有和进程相关的信息,都需要以PId为基础,从PId出发我们可以查询到一切我们需要的信息,主要的命令记住三个就行:lsof -i,lsof -p,ps aux
Linux进程相关命令使用场景的更多相关文章
- 12个Linux进程管理命令介绍(转)
12个Linux进程管理命令介绍 [日期:2015-06-02] 来源:Linux中国 作者:Linux [字体:大 中 小] 执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的 ...
- [转帖]十二 个经典 Linux 进程管理命令介绍
https://www.cnblogs.com/swordxia/p/4550825.html 接了 http referer 头 没法显示图片 可以去原始blog 里面去查看. 随笔- 109 ...
- Linux性能相关命令
Linux性能相关命令 目录 Linux性能相关命令 1. 查看硬盘相关信息 2. 查看CPU相关信息 3. 查看内存相关信息 4. 查看进程运行的信息 1. 查看硬盘相关信息 cat /proc/s ...
- Linux文件管理相关命令
Linux文件管理相关命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...
- Linux 网络相关命令 Cheat Sheet
以下漫画形式呈现的常用 Linux 网络相关命令速查表来自 twitter -
- 脚本_统计 Linux 进程相关数量信息
#!bin/bash#作者:liusingbon#功能:统计 Linux 进程相关数量信息,running(运行的进程),sleeping(睡眠中的进程),stoped(停止的进程),zombie(僵 ...
- Linux解压缩相关命令
Linux解压缩相关命令 运行级别: 0:关机 1:单用户 2:多用户无网络连接 3:多用户有网络连接 4:系统保留 5:图形界面 6:系统重启 通过init[0123456]来切换不同的运行级别 g ...
- Linux 文本相关命令(1)
Linux 文本相关命令(1) 前言 最近线上环境(Windows Server)出现了一些问题,需要分析一下日志.感觉 Windows 下缺少了一些 Linux 系统中的小工具,像在这波操作中用到的 ...
- Linux文本相关命令
Linux文本相关命令 目录 Linux文本相关命令 文本排序命令 文本去重命令 基础命令cut 文本三剑客 sed awk grep 文本排序命令 sort 常用参数: -n:以数值大小进行排序 - ...
随机推荐
- Nginx 反向代理获取设备真实的IP地址
package com.das.common.util; import org.apache.commons.lang3.StringUtils; import org.springframework ...
- Tomcat启动报错:This file is needed to run this program
Tomcat版本为 8.5.29. 1.情景 kill调用tomcat进程后,重启tomcat报如下错误: Cannot find /usr/local/apache-tomcat-/bin/setc ...
- 语法的二义性和token的超前扫描
语法的二义性 JavaCC不能分析所有EBNF描述的语法,因为EBNF描述的语法本质上具有二义性的情况.C语言中if语句用JavaCC的EBNF可以是如下描述: "if" &quo ...
- Thinkpad L440 无线驱动突然无法使用,无法搜索到无线上网
问题描述: 环境:Thinkpad L440,不知道是什么版本的,找朋友买的,买的时候连系统都没有,自己装的Win7系统,驱动均为官方网站下载安装.电脑在使用过程中一直带着电池,连接电源使用. 问题: ...
- Spring的事务管理基础知识
1.数据库事务基础知识 1)数据库事务有严格的定义,它必须同时满足4个特性:原子性(Atomic).一致性(Consistency).隔离性(Isolation)和持久性(Durability ...
- JPA唯一索引更新删除的问题
本来的功能是更新,我的做法是先删除再新增.表设置了字段A和字段B的唯一主键,先删除这个字段再新增一一模一样的值(包含字段A和字段B)时会报唯一主键的值重复了,百度了下,没找到原因,于是就不删除记录了, ...
- python基础类型—元祖
元组 被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组. 例:(1,2,3)("a","b","c") ...
- 【Java线程安全】 — ThreadLocal
[用法] 首先明确,ThreadLocal是用空间换时间来解决线程安全问题的,方法是各个线程拥有自己的变量副本. 既然如此,那么是涉及线程安全,必然有一个共享变量,我给大家声明一个: public c ...
- sublime3 快速生成html头文件
通过安装emmt插件老师来实现该功能(https://github.com/sergeche/emmet-sublime#readme) 1. 下载好后解压到文件夹: 2. 打开TS3,点击perfe ...
- Spring-Boot 访问Controller时报错可能会是这个坑
报错信息: 代码: @Controller("/index") public class IndexController extends BaseController{ @GetM ...