进程的概念
进程是程序执行的实例,在Linux中,每个进程都有一个唯一的PID(进程ID)。
查看当前系统中有哪些进程
在Linux系统中,查看当前运行的进程可以使用几个常用命令:
-
ps
- 显示当前进程的快照。常用选项包括:ps
:显示当前终端的进程。ps aux
:显示所有用户的所有进程。ps -ef
:与ps aux
类似,显示所有进程,但格式不同。
在我的IMX6ULL开发板上运行ps
命令,结果如下:
-
top
- 显示动态更新的进程列表,默认按CPU使用率排序,实时刷新。你可以在此界面查看到进程的详细信息并进行操作。
在我的IMX6ULL开发板上运行top
命令,结果如下:
注意:top
命令显示的进程信息还在不断刷新哦,我们从中还可以看到进程的状态哦,关于进程的状态,本篇博文后面会讲述。 -
htop
- 类似于top
,但提供了更友好的界面和更多交互式功能,需要安装:sudo apt install htop # Ubuntu/Debian系统 sudo yum install htop # CentOS/RedHat系统
-
pgrep
- 根据进程名查找进程。例如,查看名为bash
的进程:pgrep bash
在我的IMX6ULL开发板上运行
pgrep
命令,结果为没有这个命令。 -
pstree
- 以树状结构显示进程的父子关系。例如:pstree
在我的IMX6ULL开发板上运行
pstree
命令,结果为没有这个命令。
进程的状态
进程状态:包括运行态、就绪态、阻塞态等,常见的进程状态有:
- R (Running):进程正在运行。
- S (Sleeping):进程在等待某些事件发生(比如I/O操作)。
- D (Uninterruptible Sleep):进程处于不可中断的睡眠状态,通常是等待硬件操作。
- Z (Zombie):进程已经终止,但父进程尚未读取其退出状态。
- T (Stopped):进程被暂停(可能由于信号或调试操作)。
- SW(Swap):当系统内存(RAM)不足时,内核会将部分不常用进程的内存数据移到交换空间(通常是硬盘的一部分,称为swap分区或swap文件)。这样可以腾出内存空间给当前正在运行的进程。进程处于SW状态时,它的数据已经不在物理内存中,而是被交换到了磁盘上。这通常会导致该进程变得非常缓慢,因为从磁盘访问数据比从内存访问要慢得多。
上面已经通过运行top
命令看到了进程的状态,如下图所示:
top