📅  最后修改于: 2023-12-03 15:35:31.487000             🧑  作者: Mango
Unix/Linux 操作系统是一种多用户、多任务、分时操作系统,进程是系统中最基本的执行单位。进程管理是 Unix/Linux 操作系统中非常重要的概念,程序员必须深入了解进程管理的相关知识。
进程是正在运行程序的实例,它有自己的执行空间、代码、数据和打开文件等资源。在 Unix/Linux 系统中,每个进程拥有独立的处理器时间片、内存空间和系统资源。进程的基本特点如下:
在 Unix/Linux 系统中,进程的状态可以被分为五个:
在 Unix/Linux 系统中,有许多可以用来管理进程的命令。下面介绍一些比较常用的命令:
ps 命令用于列出当前系统中的进程。
$ ps
PID TTY TIME CMD
2274 tty1 00:00:06 Xorg
2466 tty1 00:00:00 dwm
2470 tty1 00:01:27 urxvt
2746 tty1 00:00:00 bash
2899 tty1 00:00:00 ps
常用选项:
-a
:显示所有进程。-u
:显示进程的用户和 CPU 利用率等信息。-x
:显示所有进程,包括没有控制终端的进程。-f
:以全格式显示进程信息。top 命令用于动态地显示当前系统中的进程信息。
$ top
top - 22:15:55 up 9 days, 8:45, 2 users, load average: 0.53, 0.40, 0.39
Tasks: 211 total, 1 running, 209 sleeping, 0 stopped, 1 zombie
%Cpu(s): 9.7 us, 2.3 sy, 0.0 ni, 88.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15758.9 total, 5694.4 free, 3594.4 used, 3310.1 buff/cache
MiB Swap: 2048.0 total, 2047.3 free, 0.7 used. 11691.1 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1529 root 20 0 497472 14024 9228 S 7.6 0.1 0:37.92 Xorg
2096 lena 20 0 2765460 144364 86544 S 3.3 0.9 3:52.36 gnome-shell
3969 lena 20 0 992280 141804 77600 S 2.3 0.9 2:16.01 firefox
2778 lena 20 0 641616 107556 49316 S 0.7 0.7 1:07.15 gnome-terminal-
2564 lena 20 0 966960 74324 43872 S 0.3 0.5 0:34.68 evolution-calen
2359 lena 20 0 201428 5620 3828 S 0.0 0.0 0:00.74 ibus-daemon
2362 lena 20 0 777196 30796 19868 S 0.0 0.2 0:03.01 ibus-ui-gtk3
2425 lena 20 0 647576 32008 22652 S 0.0 0.2 0:03.15 nautilus
2764 lena 20 0 1340036 23676 16464 S 0.0 0.1 0:01.95 tracker-extract
2870 lena 20 0 593020 6980 4844 S 0.0 0.0 0:00.08 dconf-service
2881 lena 20 0 202416 2124 1740 S 0.0 0.0 0:00.02 gconfd-2
2883 lena 20 0 247008 5220 4296 S 0.0 0.0 0:00.00 gconf-helper
6031 lena 20 0 58720 4272 3424 R 0.0 0.0 0:00.01 top
常用快捷键:
q
:退出 top 命令。P
:按 CPU 利用率排序。M
:按内存利用率排序。T
:按时间排序。kill 命令用于发送信号给指定进程,常用于终止进程。kill 命令的常用信号:
SIGINT
:中断进程,相当于在终端上按下 Ctrl-C
。SIGKILL
:强制终止进程,进程不会有任何机会进行清理操作。SIGTERM
:终止进程,进程有机会进行清理操作。$ kill -SIGTERM 1234
killall 命令用于发送信号给指定名字的所有进程,常用于批量终止进程。
$ killall -SIGTERM firefox
进程管理是 Unix/Linux 操作系统中非常重要的概念,程序员必须深入了解进程管理的相关知识。ps、top、kill、killall 等命令是进程管理中比较常用的命令,掌握它们可以帮助程序员快速有效地管理进程。