在Linux中可通过ps、pgrep、pidof查看进程,用kill、killall、pkill终止进程:ps显示进程快照;pgrep/pidof精准查PID;kill发信号终止单进程;killall按名批量终止;pkill支持多条件筛选终止。

如果您在Linux系统中需要查看当前运行的进程并根据需要终止特定进程,则可以通过ps命令获取进程信息,再使用kill命令发送信号结束进程。以下是具体操作步骤:
一、使用ps命令查看进程信息
ps命令用于显示当前终端会话或系统中运行的进程快照,支持多种选项组合以筛选和格式化输出结果。常用组合可列出所有进程及其PID、用户、CPU占用等关键字段。
1、执行ps aux命令,显示系统中所有用户的全部进程,包括完整命令行参数。
2、执行ps -ef命令,以标准格式列出所有进程,包含父进程ID(PPID)和启动时间。
3、执行ps aux | grep nginx命令,在全部进程中搜索关键词“nginx”,快速定位相关进程行。
4、执行ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -n 10命令,按CPU使用率降序排列,显示占用最高的前10个进程。
二、使用pgrep和pidof精确查找进程PID
当需快速获取某程序对应的进程ID(PID)而无需人工解析ps输出时,pgrep和pidof提供更简洁的匹配方式,支持正则表达式与精确名称匹配。
1、执行pgrep -f "python3 server.py"命令,查找命令行中包含“python3 server.py”的进程PID。
2、执行pgrep -u www-data nginx命令,查找属于www-data用户的nginx进程PID。
3、执行pidof sshd命令,直接返回sshd主进程的PID列表(空格分隔)。
4、执行pidof -s chrome命令,仅返回chrome的第一个匹配PID,适用于单实例场景。
三、使用kill命令发送信号终止进程
kill命令通过向指定PID发送信号控制进程行为,默认发送SIGTERM信号,允许进程自行清理后退出;若进程无响应,可升级为SIGKILL强制终止。
1、执行kill 1234命令,向PID为1234的进程发送SIGTERM信号,请求其正常退出。
2、执行kill -9 1234命令,向PID为1234的进程发送SIGKILL信号,强制立即终止,不触发任何清理逻辑。
3、执行kill -15 1234命令,显式发送SIGTERM信号,等效于不带参数的kill命令。
4、执行kill -HUP 1234命令,向PID为1234的进程发送SIGHUP信号,常用于通知服务重新加载配置。
四、使用killall命令按名称批量终止进程
killall命令依据进程名而非PID进行操作,适用于需同时结束多个同名进程的场景,支持区分大小写与用户过滤。
1、执行killall firefox命令,终止所有名为firefox的进程。
2、执行killall -u alice bash命令,仅终止用户alice启动的bash进程。
3、执行killall -I httpd命令,忽略大小写匹配httpd、HTTPD等变体名称。
4、执行killall -w -e nginx命令,等待nginx进程完全退出后再返回,且要求进程名完全匹配(不能是nginx_helper)。
五、使用pkill命令结合条件表达式终止进程
pkill提供比killall更灵活的匹配机制,支持基于用户、组、终端、命令行内容等多维度筛选,并可直接嵌入shell条件判断流程。
1、执行pkill -f "node app.js"命令,终止命令行中完整包含“node app.js”的进程。
2、执行pkill -U 1001命令,终止UID为1001的所有进程。
3、执行pkill -t pts/2命令,终止在终端pts/2上运行的所有进程。
4、执行pkill -x systemd-journald命令,仅匹配进程名完全等于systemd-journald的进程,排除其子进程或衍生进程。










