进程管理
在命令行中查看并管理进程。
查看 PID
查看 PID 的方法有多种,包括通过使用基础的 ps 命令,或使用可视化的 top 系列命令,而 Linux 更多倾向于使用后者。
ps 命令
Linux 的每个进程都会创建一个 PID,作为该进程的唯一标识,ps -He 可以查看所有的进程 PID 的树状结构,可以通过 | 管道传入 grep 命令对输出结果进行筛选。
查询包含 code 字符串的进程:
ps -e | grep -i code
-i表示忽略 grep 查询对大小的限制筛选。
例如产生以下输出:
3289 ? 00:00:37 code
3292 ? 00:00:00 code
3337 ? 00:00:59 code
3293 ? 00:00:00 code
3295 ? 00:00:00 code
3379 ? 00:03:21 code
3339 ? 00:00:01 code
3412 ? 00:00:06 code
3498 ? 00:00:02 code
3511 ? 00:00:27 code
3608 ? 00:00:00 code
3627 ? 00:00:06 code后续若要对进程进行操作,仅需操作根进程的 PID 即可,即 3289。
更多用法查看 PID 适用 ps 命令,使用 man ps 或 ps --help 命令获得帮助。
top 系列命令
目前有几款不同的 top,包括 top htop btop atop 等,其中 htop 以高实用性受欢迎,btop 颜值最高,但对终端窗口大小有限制,过小的窗口无法启动,此处以 htop 作为示例,top 之外的 top 系列命令在绝大多数发行版中需要手动安装。
htop终端输入 htop 后将会显示所有的 PID 与各类资源占用情况,同时可以使用键盘交互式地查找或操作一些进程。
查看资源占用
使用 top 系列命令可以查询系统常用资源的占用,也是最常见的方法之一,但针对特定资源,有特定的命令进行查询。
常用资源占用
htop 或其他系列命令将显示常用资源的占用情况,包括 CPU 占用,内存占用,线程数,PID 信息等。
内存占用
free 命令查看运行内存占用情况,常用以下命令进行查看:
free -h-h 将忽略具体大小,以 MB 或 GB 单位进行显示。
查看流量进出速度
使用 nload 命令可以查看流量进出速度,进出速度将显示分为两个列表显示。
查看端口占用情况
lsof 查看端口占用
lsof -i:端口号netstat 包含在 net-tools 软件包中,默认不会安装在绝大多数发行版中,需要手动安装。
常用参数如下
使用 -tunlp 参数列出所有监听协议端口占用情况,通过管道传入 grep 进行过滤以达到查询端口被哪个进程占用的效果。
netstat -tunlp | grep结束进程
常用的结束进程的方法有使用 kill 匹配进程 PID 进行结束,或使用 pkill 匹配进程名进行结束。
kill 命令
使用 kill [-n] PID 以杀掉命令,其中 n 表示要发送的数字信号,常用信号如下
SIGKILL(信号9):立即结束进程,不能被捕获或忽略。
SIGTERM(信号15):正常结束进程,可以被捕获或忽略。
SIGINT(信号2):通常是Ctrl+C产生的信号,可以被进程捕获或忽略。
例如查询到 code 进程 PID 为 3389,现在要杀掉该进程,使用如下命令:
kill 3389或指定信号,强制结束:
kill -9 3389pkill 命令
pkill 命令可以匹配进程名来杀掉进程,例如杀掉进程名为 code 的命令:
pkill code有时进程名过长,可以使用 -f 选项杀掉所有包含某个字符串的进程名的进程,例如杀掉 prismlauncher 进程可以使用如下命令:
pkill -f prism接管进程
一个名为 reptyr 的工具可以将进程从其他终端转移到本终端,使用方法如下:
reptyr <pid>