当你的Linux系统服务器运行缓慢时,该怎么办?您可能做的第一件事是检查网络连接。然后需要查明哪些服务/软件已经变得不正常,并正在占用宝贵的系统资源。有很多方法可以做到这一点。例如,您可以输入top命令,该命令将实时列出正在运行的进程。从那里您可以找到一个进程ID并查看进程使用了多少内存。

或者,您也可以使用一些命令按名称查找进程ID (PID)。有两个命令,每个Linux管理员都应该知道的。我想演示这些命令的用法,希望您的Linux管理工作可能更容易一些。我将在Ubuntu服务器18.04上进行演示,但是这些命令在所有Linux平台上都是通用的。

一、pidof命令

pidof命令是我们首先要查看的。它能告诉我们服务的PID。这个命令可以在您的Linux服务器上直接找到,因此不需要安装任何东西。

假设您有一个LAMP服务器,而Apache表现不好。要进行故障排除,您可能需要找到Apache的PID。幸运的是,您有pidof命令,因此您可以输入:

pidof apache2

在Apache的情况下,可能会返回许多PID(如下图)。

pidof命令显示Apache2的pid。

您现在拥有当前运行的Apache服务器的每个进程ID。当然,对于像Apache这样的进程,如果它不正常运行,您可能需要使用sudo systemctl restart apache2这样的命令进行快速重启。但是,如果服务没有对重新启动做出响应,您该怎么办?幸运的是,您有那些PID,所以您可以终止服务(使用kill PID命令,在这里PID是服务被终止的PID)。终止像Apache这样的服务应该作为最后的手段(总是从像systemctl这样的工具开始)。但拥有这些PID可以使您的工作变得更加容易。

二、pgrep命令

pgrep命令的功能与pidof类似,主要区别在于它可以基于名称或其他属性查找进程。例如,pgrep可以查找与一个组关联的pid。在Ubuntu上,大多数Apache内容倾向于附加到www-data组。使用pgrep,很容易找出与该组相关的pid。输入该命令:

pgrep - g www-data

上述命令的输出将列出属于相关组的所有PID(如下图)

与www-data相关的PID

这个命令的输出可能对我们没有任何好处。毕竟,我们如何知道这些PID属于哪一个(在一个组之外)?我们可能不仅需要知道组的PID,还需要知道附加到PID的服务。要获取此信息,我们添加如下的-l选项:

pgrep - l - g www-data

现在我们看到列出的PID和服务(如下图)

您还可以使用pgrep按用户列出进程。如果您输入命令pgrep -U root,您将看到属于root用户的每个PID。如果您使用特定用户(root除外)发出相同的命令,则列表可能会少得多。例如,pgrep -U jack(在我的服务器上)返回PID:

1225

1234

1251

1352

要查找与这些pid关联的服务,请输入以下命令:

pgrep -l -U jack

现在我们看到哪些服务和PID属于用户jack(如下图)。

查看进程名称 linux,在Linux系统服务器按名称查找进程的命令相关推荐

  1. Linux学习之系统编程篇:ps 和 kill 命令以及父子进程间数据共享模式

    一.ps 和 kill 命令 1.ps 命令 常用方式: ps aux :查看正在运行进程信息(主要查 pid). ps ajx :更加详细(PID. PPID:父进程 id. PGID:进程组 id ...

  2. Linux学习之系统编程篇:守护进程(精灵进程、后台进程)

    一.背景 一般情况下,启动终端(shell),系统会创建一个会话(shell 进程是会长),经过后续各种操作,该会话中会存在多个进程组,每个进程组中也会有多个进程(父进程是组长),若此时关闭 shel ...

  3. Linux学习之系统编程篇:孤儿进程和僵尸进程(描述对象都是子进程)

    一.孤儿进程 孤儿进程:不是没有爹!会被领养. 过程:爹先死,孩子还活着,孩子称为孤儿进程. 注意:孤儿会被 init 进程领养(init 进程是所有孤儿进程的父进程). 设计领养目的:为了子进程结束 ...

  4. linux平台下C语言按进程名查找进程号pid

    首先建立一个while循环可执行文件 #include <stdio.h> #include <stdlib.h>int main(int argc, char *argv[] ...

  5. linux几种常见的文件内容查找和替换命令

    1.vi命令下的查找和替换 1.1 vi下的查找 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配 ...

  6. Linux学习之文本查找编辑替换命令

    本文主要包括Linux环境下最常使用的文本查找编辑替换等命令,包括: find grep awk sed find Linux系统下用于文本查找定位的命令行. 命令语法: find [-H] [-L] ...

  7. 房友系统连接不上服务器,房友系统服务器地址

    房友系统服务器地址 内容精选 换一换 虚拟IP地址用于为网卡提供第二个IP地址,同时支持与多个弹性云服务器的网卡绑定,从而实现多个弹性云服务器之间的高可用性.登录管理控制台.选择"计算 &g ...

  8. linux进程通信发送方式,Linux服务器编程——Linux系统编程之进程通信

    进程通信又称IPC IPC方法 方法:管道(最简单) 信号(开销最小) 共享映射区/共享内存(无血缘关系) 本地套接字(最稳定) Linux文件类型: -   文件 d  目录 l   符号链接 s  ...

  9. linux服务器查看系统装到哪个盘,查看linux安装了什么服务器地址

    查看linux安装了什么服务器地址 内容精选 换一换 Cloud-Init是开源的云初始化工具,使用安装了Cloud-Init的镜像创建云服务器时可以通过"用户数据注入"功能,注入 ...

最新文章

  1. Disruptor技术调研之配置参数一览
  2. Qtum量子链AUR开发工具包即日上线
  3. codeblocks怎么用已封装的类_mitoq 在新西兰用着怎么样?已入手mitoq,我的感受
  4. 快醒醒,C# 9 中又来了一堆关键词 init,record,with
  5. 知乎热议:杨辉团队公开否认抄袭,网友:避重就轻仍谎称「首创」
  6. 实战:Redis 慢查询
  7. 开源自研新基建,内核实践云数据,当此方为嘉年华 - 2020嘉年华大会侧记
  8. 如何保养与维护笔记本硬盘
  9. 序列化之Java默认序列化技术(ObjectOutputStream与ObjectInputStream)
  10. 音频编码格式——AAC简介
  11. Cisco Packet Tracer 子网划分实验
  12. 几种取时间的方法(附代码)
  13. springboot跳转外部链接
  14. Vite:Error: Cannot find module ‘worker_threads‘
  15. 58同城架构师谈:亿级流量架构演进
  16. Vertica ros和wos介绍
  17. nvcc和nvidia-smi显示的版本不一致?
  18. 考研网络100基础知识
  19. @Url.Content
  20. 潜入维基解密机房 更新中文视频+高清图

热门文章

  1. 超级好用的芯片封装网站IC Search
  2. 实战十四:基于线性回归预测环境空气质量 代码+数据
  3. bzoj2096 pilots
  4. 【Lintcode】1718. Minimize Malware Spread
  5. 淘宝API item_search_img - 按图搜索淘宝商品(拍立淘)图片搜索
  6. 睡觉少对孩子影响很大肚子变胖记忆受损
  7. 三天入门Python---基本语法(第一天)
  8. 线性代数的本质--对线性空间、向量和矩阵的直觉描述
  9. java 云笔记_云笔记系统的设计与实现 PDF 下载
  10. android脚本 附近的人,前天微信上有个附近的人加我,我发现她是个脚本