本文是《Linux 入门指南》的第十一篇文章,以 Ubuntu 21.10 为例,介绍了 Linux 进程管理。

ps(显示当前进程的状态)

描述:

"process status(进程状态)" 的缩写,显示当前进程的状态,类似于 Windows 中的资源管理器。

用法:

      ps [选项] 

选项:

选项 长选项 意义
-A, -e 列出所有的进程
-a 显示所有终端机下执行的程序,除了阶段作业领导者之外
a 显示现行终端机下的所有程序,包括其他用户的程序
-d 显示所有程序,但不包括阶段作业领导者的程序
-N --deselect 显示所有的程序,除了执行ps指令终端机下的程序之外
r 只列出现行终端机正在执行中的程序
T 显示现行终端机下的所有程序
x 显示所有程序,不以终端机来区分
-C <命令> 命令名称
-G --Group 列出属于该群组的程序的状况,也可使用群组名称来指定
-g --group 此选项的效果和指定 "-G" 选项相同,当亦能使用阶段作业领导者的名称来指定
-p, p --pid 进程编号
--ppid 父进程编号
-q, q --quick-pid 进程 ID(快速模式)
-s --sid 会话 ID
-t, t --tty 终端
-u, U --user 列出属于该用户的程序的状况,也可使用用户名称来指定
-U --User 真实用户编号或名称
-F 完整格式,还包含额外的格式
-f 完整格式,包含命令行
f --forest ascii 字符艺术显示的进程树
-H 显示树状结构,表示程序间的相互关系
-j 采用工作控制的格式显示程序状况
j BSD 任务控制格式
-l 长格式
l BSD 长格式
-M, Z 添加安全数据(用于 SELinux)
-O 预加载默认列
O 和 "-O" 选项一样, with BSD personality
-o, o --format <格式> 用户定义的格式
s 信号格式
u 以用户为主的格式来显示程序状况
v 虚拟内存格式
X 寄存器格式
-y 配合选项 "-l" 使用时,不显示 F(flag) 栏位,并以 RSS 栏位取代 ADDR 栏位
--context 显示安全上下文(用于 SELinux)
--headers 重复显示标题列
--no-headers 此选项的效果和指定 "h" 选项相同,只在列表格式方面稍有差异
--cols, --columns, --width 设置每列的最大字符数
--rows, --lines 设置显示画面的列数
H 好像它们是进程
-L 可能带有 LWP 和 NLWP 列
-m, m 后处理
-T 可能带有 SPID 列
-c 显示 CLS 和 PRI 栏位
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示
e 列出程序时,显示每个程序所使用的环境变量
k --sort 指定排序顺序为:
L 列出栏位的相关信息
n 以数字来表示 USER 和 WCHAN 栏位
S --cumulative 列出程序时,包括已中断的子程序资料
-y 配合选项 "-l" 使用时,不显示 F(flag) 栏位,并以 RSS 栏位取代 ADDR 栏位
-V, V --version 显示版本信息
-w, w 不限制输出宽度
--help simple/list/output/threads/misc/all 显示帮助信息并退出

实例:

显示当前进程的状态(查看所有的进程)

ps -aux

显示当前进程的状态(查看所有的进程,等同于 ps -aux

ps -ef

显示当前进程的状态(以 wget 为关键字查找指定的进程)

ps -aux | grep wget

kill(杀死指定的进程)

描述:

"kill(杀死)" 的全称,杀死指定的进程。

用法:

      kill [选项] [PID] 

选项:

选项 意义
-s sig SIG 是信号名称
-n sig SIG 是信号编号
-l 列出信号名称;如果参数后跟 `-l'则被假设为信号编号,而相应的信号名称会被列出

实例:

列出信号名称(只有第9种信号 (SIGKILL) 才可以无条件终止进程,其他信号进程都有权利忽略)

jianrry@jianrry:~$ kill -l

 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP

 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1

11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM

16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP

21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ

26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR

31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3

38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8

43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13

48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12

53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7

58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2

63) SIGRTMAX-1	64) SIGRTMAX

杀死指定的进程(杀死 pid 为 12274 的进程)

kill -9 12274