如何远程杀死进程 ID Bash

How kill process ID remotely Bash

在 linux 设备上,以下进程 ID 运行s:

我正在尝试远程终止与 ads2(如上图所示)相关的进程 ID(通过另一台设备上 运行 的 bash 脚本)。所以我尝试了:

ssh nvidia@"id-address" "kill pgrep ads2"

其中 pgrep returns 与 ads2 相关的进程 ID。当我 运行 脚本提示我输入密码然后什么也没有发生时,我的意思是进程没有终止。

但是,我想不出错误在哪里。

提前致谢

kill 期望后面有一个数字(或数字列表)。 pgrep ads2 只是文字!

为了 bash 将单词 pgrep ads2 替换为 运行 命令生成 kill 15951 15995 的结果,您可以使用反引号。

即: kill `pgrep ads2` 将首先 运行 pgrep ads 然后 kill (result of pgrep ads2)

但是,当您通过 ssh 执行此操作时,您的计算机会 运行 在远程之前使用反引号。 IE。 pgrep ads 在本地机器上是 运行,在远程机器上是 kill,这是行不通的。所以你必须像这样转义反引号:

ssh nvidia@"id-address" "kill \`pgrep ads2\`"