ubuntu 服务器中的 pkill

ubuntu 服务器中的 pkill

我使用命令pkill作为在我的 vps ubuntu 上,我被踢出服务器并且无法访问它。

这是我在终端内写的:

pkill h

H是我的ubuntu用户

解决办法是什么?

答案1

如果您想终止属于特定用户的所有进程,请使用

pkill -U user .

.末尾的 匹配任何进程名称,并将操作-U user限制为属于名为 的用户的进程user

要查看命令会影响哪些进程pkill,您可以将pkill命令本身替换为pgrep, 然后可能添加-l以获得“长输出”(进程名称也会显示)。

pgrep -l h

上面的命令应该显示系统上h名称中包含该字符的所有命令,而下面的命令将显示属于名为 的用户的所有命令user

pgrep -l -U user .

答案2

你告诉我们,

这是我在终端内写的:pkill h

此外,您这样做是作为root.这里发生的事情是您杀死了h名称中包含的所有进程。这包括sshd控制入站请求的master ssh,以及调解现有连接的所有子节点。

除非您可以登录到非图形控制台并自行重新启动,否则您将需要安排强制重新启动系统。

我强烈建议您养成检查文档以查找您不熟悉的命令的习惯。这里,man pkill作为第一个示例,显示了一种仅选择特定用户拥有的进程的方法。将示例应用到您的情况,

pkill -u h          # user "h"

更好的是,pgrep首先检查您是否匹配了正确的进程集:

pgrep -a -u h       # -a shows "all" the command line, for user "h"

或者发送信号0,没有任何动作:

pkill -0 -e -u h    # Signal zero, "echo" affected processes, for user "h"

请注意,用户名必须完全匹配,但进程名称是部分匹配。 (这就是为什么h在你的原始命令中匹配的原因sshd。)

相关内容