进程与资源
没有注明 Linux 的条目可用于 macOS;pgrep 的参数差异和 free 的平台限制见条目说明,部分 Linux 系统需先安装 lsof。
基础条目参考:procps-ng:ps 手册、Linux:kill 手册。
查看进程
列出正在运行的程序,找到它们的 PID。
查看正在运行的进程
ps aux
- 助记:
ps可按 process status(进程状态)记;BSD 风格的a扩大用户范围,u显示用户格式,x包含无终端进程。 - 作用:列出当前可见的进程及其 PID、CPU 和内存使用情况。
- 遇到场景:程序运行异常,想确认进程是否还在运行,或查找占用资源的程序。
- 来源:procps-ng:ps 手册。
查找指定程序的 PID 和命令行
pgrep -af 'train.py'
- 助记:
pgrep可按 process + grep(搜索进程)记;Linux 的-a显示完整命令,-f按完整命令行匹配。 - 作用:Linux procps 写法;macOS 可用 pgrep -fl。
结束进程
kill、pkill,结束卡住的程序或残留的训练进程。
请求进程正常退出
kill -TERM 12345
- 助记:
kill的实际作用是发送信号;TERM← termination(终止),PID 是 process ID(进程编号)。 - 作用:先确认 PID 并替换示例编号;TERM 允许程序处理退出,程序是否响应取决于实现。
后台运行
nohup、&、jobs,让任务在后台或退出终端后继续运行。
退出终端后仍让任务继续运行
nohup python train.py > train.log 2>&1 < /dev/null &
- 助记:
nohup← no hangup(忽略挂断);结尾&才是让任务在后台运行,两者作用不同。 - 作用:忽略挂断信号并重定向输入输出;重启或进程报错仍会停止。
查看并切回终端后台任务
jobs
fg %1
- 助记:
jobs= 作业列表;fg← foreground(前台),%1是 shell 作业号,不是进程 PID。 - 作用:两步在启动任务的同一个 shell 中执行,%1 换成 jobs 显示的作业号。
端口占用
查看哪个进程占用了端口。
查看谁占用了某个端口
lsof -i :8000
- 助记:
lsof← list open files(列出打开的文件);网络连接也按打开对象查看,-i :8000筛选网络端口。 - 作用:列出使用 8000 端口的网络连接和进程,PID 是进程编号;没有输出可能是没有匹配结果或权限不足。
- 遇到场景:本地启动服务时报
address already in use,需要先确认占用者。 - 来源:命令速查表建站示例。
只查看某端口的 TCP 监听进程
lsof -nP -iTCP:8000 -sTCP:LISTEN
- 助记:
lsof← list open files;-n不解析主机名,-P保留数字端口,LISTEN= 监听状态。
资源监控
top、htop、free,查看 CPU 和内存占用。显卡见 GPU 与 CUDA。
交互查看 CPU 和内存占用
top
- 助记:
top是动态进程查看器;可按“最上方列出资源使用突出的进程”记用途,不当作缩写。 - 作用:按 q 退出。
查看 Linux 内存总量与可用量
free -h
- 助记:
free= 空闲;-h= human readable(易读单位),available 表示估算的可用内存。 - 作用:Linux 命令;判断剩余可用内存主要看 available 列。