如何kill其他用户的进程

听我说一句:这是我的学习笔记,仅供参考

你是管理员 需要 sudo

1 四种方法

在Linux系统中,每个用户都可以拥有多个进程。有时,我们需要终止一个用户的所有进程,这可能是因为该用户已经离开了系统,而他的进程仍在运行,占用了大量的系统资源。在某些情况下,这也可能是因为该用户的进程正在导致系统性能下降,需要终止这些进程来恢复系统的正常运行。

网上有4种方法,我们以kill用户ttlsa为例

  1. pkill方式
pkill -u ttlsa
  1. killall方式
killall -u ttlsa
  1. ps方式
    ps列出ttlsa的pid,然后依次kill掉,比较繁琐.
ps -ef | grep ttlsa | awk '{ print $2 }' | sudo xargs kill -9
  1. pgrep方式
    pgrep -u参数查出用户的所有pid,然后依次kill
pgrep -u ttlsa | sudo xargs kill -9

网友评论:如果在服务器上跑程序,使用了vnc的话,最好别用1和2方法吧,直接连vnc杀掉了

什么是vnc? 参考资料1:https://www.xinruiyun.cn/zhishiku/2917.html

VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 或 MAC 中的任何远程控制软件媲美。在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下只需要其中的两个命令:vncserver 和 vncviewer。目前,原来的AT&T版本已经不再使用,因为更多有重大改善的分支版本已经出现, 像是RealVNC, VNC tight 和UltraVNC。 Real VNC 是当前最活跃和强大的主流应用。

参考资料2:https://gnu-linux.readthedocs.io/zh/latest/Chapter02/98_vnc.html

VNC 是基于 RFB(Remote FrameBuffer)的一款开源的远程桌面控制软件。它由客户端、服务端和一个协议组成。

2 用这个方法最保险

要在服务器上杀掉特定用户的某个进程,可以使用以下步骤:

  1. 找到该用户的vi进程ID(PID)。
  2. 杀掉该进程。

以下是详细的步骤和命令:

2.1 找到进程ID

首先,使用ps命令列出所有vi进程,并找到特定用户(user002)正在编辑特定文件(CX_header.vcf)的进程ID。

ps aux | grep "user002" | grep "vi CX_header.vcf"

ps aux

  • ps:显示当前系统的进程状态。
  • a:显示所有用户的进程(而不仅仅是当前用户)。
  • u:以用户为中心的格式显示进程信息,包括用户、PID、CPU和内存使用率等。
  • x:显示所有进程,包括没有控制终端的进程。

这条命令将列出系统上所有正在运行的进程及其详细信息。

此命令会列出所有包含user002vi CX_header.vcf的进程信息。你会看到类似以下输出:

user002   12345  0.0  0.1  123456  7890 ?  S  12:34  0:00 vi CX_header.vcf

其中第二列 12345是进程ID(PID)。

插曲

#插曲,用-ef也可以
# -e:显示系统上所有进程。
# -f:以完整格式显示进程信息,包括用户、PID、父进程ID(PPID)、启动时间、终端、CPU时间和命令等详细信息。
ps -ef | grep username 

最简单的使用htop,也可以找到这一进程PID,其中第一列就是PID

2.2 杀掉进程

找到进程ID后,可以使用kill命令杀掉该进程:

kill -9 12345

用你找到的具体PID替换12345

示例命令

假设ps命令的输出中进程ID为12345,完整的命令如下:

# 找到进程ID
ps aux | grep "user002" | grep "vi CX_header.vcf"

# 杀掉进程
kill -9 12345

这会强制终止user002用户正在编辑文件CX_header.vcfvi进程。

不带-9选项优雅地终止进程

  • 使用kill -9会强制终止进程,可能导致未保存的工作丢失。通常建议先尝试使用kill命令(不带-9选项)优雅地终止进程:

    kill 12345
    
  • 在多用户环境中,请确保只终止与目标任务相关的进程,以免影响其他用户和进程。

  • 16
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值