我使用命令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
。)