微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash如何远程杀死进程ID

如何解决Bash如何远程杀死进程ID

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

enter image description here

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

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

其中 pgrep 返回与 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\`"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。