题 杀死特定用户运行的进程


假设我有几个用户同时运行''ruby''进程。如何编写shell命令来杀死某个特定用户的''ruby''进程? (我在CentOS 5.5上。)


6
2017-08-16 16:37






答案:


pkill对此有好处:

pkill -u particularUser ruby

您可以在运行它之前使用pgrep作为测试,以查看将要发出信号的进程名称和pid:

pgrep -u particularUser -l ruby

10
2017-08-16 16:42





你可以使用 -u 切换到killall将范围限制为单个用户。所以对于用户abc你可以这样做: killall -u abc /usr/bin/ruby (或任何与红宝石过程相匹配的东西)

man killall

-u, - 用户
  Kill只处理指定的用户拥有。命令名称是可选的。


1
2017-08-16 16:42



就个人而言,我更喜欢pkill而不是killall因为(a)killall在Linux以外的某些Unix上是邪恶的(b)pkill有pgrep别名,你可以用它来测试它会做正确的事情。 - freiheit


在最坏的情况下,如果您可以登录或 su - 作为用户,您可以发出有名的 kill -9 -1 命令AS用户清理其进程。

不要以root身份运行:)


1
2018-01-16 15:55