ps命令来获取进程列表。运行ps aux可以显示所有用户的所有进程的详细信息。在 Linux 系统中,获取进程列表是一个常见的任务,可以通过多种方式实现,本文将详细介绍几种常用的方法,包括使用ps、top、htop 以及读取/proc 文件系统等。
方法一:使用 `ps` 命令

ps(process status)命令是最常用的查看进程信息的工具之一,它能够显示当前系统中所有正在运行的进程或特定用户的进程。

基本用法
ps aux
a: 显示所有用户的进程
u: 以用户友好的方式显示
x: 显示没有控制终端的进程
该命令会输出一个包含以下字段的表格:
| USER | PID | %CPU | %MEM | VSZ | RSS | START | ELAPSED | C | TIME | COMMAND |
| root | 1 | 0.0 | 0.0 | 486 | 472 | 10:00 | 00:01:23 | 0 | 0:00.01 | /sbin/init |
| user | 1234 | 1.2 | 2.3 | 12345 | 1023 | 10:05 | 00:05:45 | 1 | 0:00.56 | /usr/bin/python |
过滤特定进程
可以使用grep 来过滤特定的进程名称,例如查看所有与apache 相关的进程:
ps aux | grep apache
方法二:使用 `top` 命令
top 命令可以实时显示系统中各个进程的资源使用情况,默认每隔几秒钟刷新一次。
基本用法
直接输入top 即可启动:
top
输出界面类似于:
top 10:15:32 up 1 day, 2:15, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.2 us, 0.5 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2048 total, 320 free, 800 used, 1280 buff/cache KiB Swap: 1024 total, 1024 free, 0 used. 1280 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 user 20 0 12345 1023 800 R 1.2 0.5 0:05.45 python
方法三:使用 `htop` 命令
htop 是top 的一个更友好的版本,提供了交互式界面和更多功能,不过需要先安装:
sudo apt-get install htop
然后运行:
htop
界面类似于:
F1 Help F2 Tree View F3 Search F4 Filters F5 Tree Up F6 Tree Down F7 Love F8 Jobs F9 Kill Process F10 Quit F11 System Information F12 Increment Nice +Shift F12 Decrement Nice [1]+ Stopped (SIGTSTP) top
方法四:读取 `/proc` 文件系统
Linux 的/proc 文件系统包含了关于系统和进程的信息,每个进程都有一个对应的目录,如/proc/[pid]。
示例脚本
以下是一个使用 Python 读取/proc 文件系统的简单脚本:

import os
def list_processes():
# List all process directories in /proc
for pid in os.listdir('/proc'):
if pid.isdigit():
try:
cmdline = open(f'/proc/{pid}/cmdline', 'r').read().strip()
with open(f'/proc/{pid}/stat', 'r') as f:
stat = f.read().split()
name = os.path.basename(stat[1])
user = os.path.basename(stat[2])
state = stat[2]
ppid = int(stat[3])
priority = int(stat[17])
print(f"PID: {pid}, Name: {name}, User: {user}, State: {state}, "
f"PPID: {ppid}, Priority: {priority}, Command Line: {cmdline}")
except Exception as e:
pass
if __name__ == '__main__':
list_processes()运行此脚本将输出类似以下的信息:
PID: 1, Name: init, User: root, State: S, PPID: 0, Priority: -20, Command Line: /sbin/init PID: 1234, Name: python, User: user, State: R, PPID: 1, Priority: -20, Command Line: /usr/bin/python script.py
相关问题与解答
问题1: 如何终止一个进程?
答:可以使用kill 命令来终止一个进程,首先通过ps、top 或其他方法找到目标进程的 PID,然后使用以下命令:
kill [PID]
如果普通kill 不起作用,可以尝试强制终止:
kill -9 [PID]
但请注意,强制终止可能会导致数据丢失或其他问题。
问题2: 如何查找特定端口号对应的进程?
答:可以使用lsof 或netstat 命令来查找特定端口号对应的进程,要查找占用端口 8080 的进程,可以使用:
lsof -i :8080
或者:
netstat -tuln | grep :8080
这些命令将返回占用指定端口的进程信息。
以上内容就是解答有关“c获取进程列表linux”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/2652.html<
