当我中断ssh本身时如何使ssh杀死远程进程?

tko*_*zka 22 ssh bash

在bash脚本中,我通过ssh在远程机器上执行命令.如果用户通过按Ctrl + C中断脚本,它只会停止脚本 - 甚至不会停止ssh客户端.即使我杀死ssh客户端,远程命令仍在运行...

如何使bash在Crtl + c上杀死本地ssh客户端和远程命令调用?

一个简单的脚本:

#/bin/bash
ssh -n -x root@db-host 'mysqldump db' -r file.sql
Run Code Online (Sandbox Code Playgroud)

tko*_*zka 21

最终我找到了这样的解决方案:

#/bin/bash
ssh -t -x root@db-host 'mysqldump db' -r file.sql
Run Code Online (Sandbox Code Playgroud)

所以 - 我使用'-t'而不是'-n'.删除'-n'或使用不同于root的用户无济于事.

  • 我需要-t -t(两次)才能使它工作. (7认同)