最可靠方法是pkill -kill -t tty名,如pkill -kill -t pts/3;先用w或who查清目标tty(如pts/n为可踢远程会话),再执行,避免误伤。

直接踢掉其他在线用户,最可靠、最常用的方法是用 pkill -KILL -t 配合终端名(TTY),而不是杀进程 ID 或用户名——后者容易误伤或漏杀。
怎么看谁在登录、用的是哪个 TTY
运行 w 或 who 就能列出所有活跃会话。关键看 TTY 列:
-
tty1~tty6:本地物理/虚拟控制台(Ctrl+Alt+F1~F6) -
pts/0、pts/1等:远程 SSH 登录分配的伪终端,这才是你要踢的典型目标 -
:0或console:图形界面会话,一般不建议直接踢
执行 who am i 先确认你自己在哪个 TTY,避免手抖把自己干掉。
为什么用 pkill -KILL -t pts/X 而不是 killall -u username
killall -u username 看似方便,但风险高:
- 它会杀掉该用户**所有进程**,包括后台服务、screen/tmux 会话、甚至数据库连接,不只限于登录会话
- 如果多个用户共用同一账号(比如都用
deploy),会一锅端 - 某些系统上
killall默认不支持-u,行为不一致
而 pkill -KILL -t pts/X 是精准打击:只杀这个伪终端上的整个进程树(从 shell 开始的所有子进程),干净利落,影响可控。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
pkill -KILL -t pts/X 不生效?检查这三点
常见卡点不是命令写错,而是权限或状态问题:
- 必须是
root或有sudo权限的用户才能执行,普通用户无权踢别人 - 目标用户可能已断连但残留
sshd进程(比如网络闪断),此时pts/X已失效,w里还显示着;可改用fuser -k /dev/pts/X强制清理设备节点 - 极少数情况(如容器环境或特殊 PAM 配置),
sshd进程没挂在pts/X下,这时得查ps aux | grep sshd找到对应sshd:进程,再kill -9它的 PID
踢完别忘了验证和善后
执行完立刻跑一次 w,确认目标 TTY 消失。如果还在,说明没踢干净,加 -9 再试一次:
pkill -9 -t pts/2
注意:没有“优雅退出”这回事——-KILL(即 -9)信号不能被捕获或忽略,它就是立即终止。所以务必提前通知用户保存工作,否则文件未写入、数据库事务中断都是真实风险。生产环境里,临时禁用账号(usermod -s /sbin/nologin username)比暴力踢人更稳妥。










