如何向远程 shell 上的进程发送 SIGKILL 和 SIGSTOP?

如何向远程 shell 上的进程发送 SIGKILL 和 SIGSTOP?

远程 shell 上有一个程序无限期地运行,它不允许我访问它的登录 shell。(即,每当我登录时,我都会看到该程序在控制台上运行)。

我不想发送SIGKILLSIGSTOPSIGSEGV等来通过来停止它ssh

是否可以发送并访问正常的shell?

答案1

如果问题出在 中/etc/profile,请注意,通过 SSH,它是为 SSH 本身启动的交互式 shell 提供来源。如果您运行另一个命令,则不会提供来源,即使该命令是您的 shell:

ssh -t user@server bash

当指定命令时,SSH 假定您不是以交互方式运行它,并且不会分配伪 tty(这可能会导致某些程序出现问题)。-t无论如何都需要告诉它分配一个 pty。

如果您的 SSH 服务器使用选项,那么所有这些都毫无意义ForceCommand。如果使用选项,那么无论您在命令中指定什么ssh,服务器配置为运行的任何内容都将运行。

答案2

听起来您用户的登录 shell 不是标准的。您尝试过使用 登录吗ssh user@host /bin/sh?如果成功,您将能够找出正在运行的进程并将其终止。

相关内容