进程管理命令
进程管理命令
ps
ps
命令用于显示当前正在运行的进程(进程状态)信息。它是一个常用的 Linux 命令,可以监视系统上正在运行的进程,查找特定进程,以及获取关于进程资源使用情况的信息。
基本语法格式如下:
ps [options]
其中,options
是一系列用于指定 ps
命令行为的选项。下面是一些常用的 ps
命令选项及其说明:
-
-e
: 显示所有所有进程,包括正在运行的和已经终止的,无论它们是否在当前终端会话中。 -
-a
:显示当前终端会话中的所有用户进程,包括其他用户的进程,但默认情况下不包括停止的进程。 -
-x
参数用于显示所有与当前用户相关的进程,包括没有终端控制的进程。它会列出不与任何终端相关联的进程,例如守护进程(daemon processes)等。 -
-f
: 显示详细的进程信息,包括用户、PID、PPID、CPU 使用率、内存使用等。 -
-H
: 显示进程树,以缩进方式显示进程之间的层次关系。可以更清晰地展示父进程和子进程的关系。 -
-L
:显示进程的线程信息,如果一个进程有多个线程,这将显示每个线程的信息。 -
-u <user>
: 显示指定用户的进程,可以同时指定多个用户,用逗号分隔 -
-p <PID>
:显示指定进程ID的详细信息,可以添加多个进程ID,用空格分隔 -
--sort
: 按指定的字段排序显示进程列表,例如--sort=-%cpu
按 CPU 使用率降序排序。
以下是一些常用的 ps
命令选项以及案例说明:
# 显示当前终端窗口中的进程列表
ps
# 显示所有进程,包括正在运行的和已经终止的
ps -e
# 显示所有进程的详细信息,包括用户、PID(进程标识符)、CPU 使用率、内存使用等。
ps -ef
ps -aux
# 显示特定用户运行的进程列表
ps -u <用户名>
# 显示特定进程ID的详细信息
ps -p <进程ID>
# 按照 CPU 使用率从高到低的顺序显示进程列表
ps -ef --sort=-%cpu
# 按照内存使用率从高到低的顺序显示进程列表
ps -ef --sort=-%mem
# 显示进程树,包括父进程和子进程的关系
ps -efH
# 显示进程和线程,包括每个线程的详细信息
ps -efL
kill
kill
命令用于向进程发送信号,从而影响进程的行为。信号是一种通知机制,可以用来控制进程的运行状态、执行特定操作或请求进程终止。通过 kill
命令,您可以与正在运行的进程进行交互,例如终止、重新加载配置或重新启动等操作。
基本语法格式如下:
kill [options] <PID>
其中,<PID>
是要操作的进程的进程ID。可以添加多个进程ID,用空格分隔
列出所有可用信号及其编号:
kill -l
kill -9
:- 发送
SIGKILL
信号给目标进程,该信号是终止(kill)信号。 - 使用
-9
选项会强制终止目标进程,进程将立即被终止,不会有清理操作或终止信号处理。 - 这种方式可能会导致进程在终止时无法进行资源释放或状态保存,可能会留下未处理的数据或文件。
- 发送
kill -15
:- 发送
SIGTERM
信号给目标进程,该信号是终止(terminate)信号。 - 使用
-15
选项会优雅地请求目标进程终止,允许进程执行清理操作和终止信号处理。 - 这是一种通常建议的终止方法,因为它允许进程在退出前完成必要的操作。
- 发送
kill -20
:- 发送
SIGTSTP
信号给目标进程,该信号是挂起(suspend)信号。 - 使用
-20
选项会暂停(挂起)目标进程,类似于按下Ctrl+Z
键。进程会停止执行,但可以在后台继续运行。 - 适用于暂停正在运行的进程,然后将其放到后台以便执行其他操作,在后续需要时重新启动它。
- 发送
nohup
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
基本语法格式如下:
nohup Command [ Arg … ] [ & ]
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
以下是一些常用的 nohup
命令选项以及案例说明:
nohup sh -c 'while true; do date; sleep 2; done' > log.txt 2>&1 &
2>&1 解释:
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 log.txt
文件中。
- 0 – stdin (standard input,标准输入)
- 1 – stdout (standard output,标准输出)
- 2 – stderr (standard error,标准错误输出)
top
top
是一个命令行实用程序,用于实时监视系统的运行状态和进程活动。它可以显示各种系统性能指标,如CPU使用率、内存使用、进程列表等,并且会持续刷新显示,以便实时了解系统的性能情况。
常见的交互式操作:
- 使用键盘上的箭头键上下浏览进程列表。
- 按下
f
键进入交互界面,使用d
或 space
选择是否显示某些字段,使用s
指定字段排序 - 按下
Shift+M
按内存使用排序进程列表。 - 按下
Shift+P
按CPU使用排序进程列表。 - 按下
k
键输入进程PID来终止一个进程。 - 按下
q
键退出top
。
每一列字段说明:
-
PID
:进程ID,唯一标识一个进程。 -
USER
:进程的所有者用户名。 -
PR
:进程的优先级。 -
NI
:NICE值,影响进程的调度优先级。 -
VIRT
:进程使用的虚拟内存量。 -
RES
:进程使用的实际物理内存量(Resident Set Size)。 -
SHR
:进程使用的共享内存量。 -
S
:进程状态,如运行(R)、等待(S)、停止(T)、僵尸(Z)等。 -
%CPU
:进程使用的CPU资源百分比。 -
%MEM
:进程使用的内存资源百分比。 -
TIME+
:进程在CPU上的累计运行时间。 -
COMMAND
:进程的命令行。