Linux中的进程管理是系统操作的核心,涉及查看、控制和调度运行中的程序。以下是一些最常用的命令,可以分为几个类别:
1. 查看进程状态
这是了解系统正在运行什么的基础。
ps:最常用的进程查看命令。ps aux:查看系统中所有用户的详细进程信息(常用组合)。ps -ef:以完整格式列表显示所有进程。ps -u [用户名]:查看特定用户的进程。
top/htop:实时动态查看进程状态和系统资源占用(如CPU、内存)。top:系统自带,交互式界面。
Important
Linux 中的每个进程(process)都有 ID,称为 PID,他们是进行进程管理的关键
2. 结束或发送信号给进程
用于终止失控进程或通知进程做某些操作(如重载配置)。
kill:通过进程ID(PID)向进程发送信号。kill [PID]:默认发送TERM信号(15),请求进程正常终止。kill -9 [PID]:发送KILL信号(9),强制立即终止进程(最后手段)。
pkill/killall:通过进程名来发送信号,避免先查找PID。pkill [进程名]killall [进程名]
3. 后台与前台作业管理
在同一个终端会话内管理启动的任务。
&:在命令末尾加上&,使程序在后台立即运行。- 例如:
python long_script.py &
- 例如:
jobs:列出当前终端会话中的所有后台作业及其编号。fg %[作业号]:将指定的后台作业切换到前台运行。bg %[作业号]:将已暂停的作业在后台继续运行。Ctrl + Z:快捷键,暂停当前前台运行的程序,并将其放入作业列表。
4. 其他实用命令
nice和renice:调整进程的优先级(Nice值)。nice -n 5 [命令]:以较低的优先级(数字越大,优先级越低)启动命令。renice -n 10 -p [PID]:修改一个已运行进程的优先级。
pgrep:根据名称查找进程的PID。- 例如:
pgrep python会列出所有Python进程的PID。
- 例如:
一个简单的工作流示例
假设你在终端运行一个耗时的生物信息学分析:
- 启动程序:
./analysis.sh(它在前台运行) - 你临时需要终端做别的事,于是按
Ctrl + Z暂停它。 - 输入
bg %1让它转到后台继续运行。 - 输入
jobs查看它的状态(显示为“Running”)。 - 分析结束后,你想把它拉回前台查看输出:
fg %1。 - 如果需要强制停止它:先按
Ctrl + Z暂停,然后用kill -9 %1终止该作业。
核心要点:ps/top 用于看,kill 用于停,jobs/fg/bg 用于管理你的终端任务。掌握这些就能应对大多数基本的进程管理场景。