【问题标题】:Sending Ctrl_C over ssh通过 ssh 发送 Ctrl_C
【发布时间】:2017-02-10 17:25:04
【问题描述】:
在我的许多服务器上,autofs 已挂起,并且一个进程正在尝试访问挂载,当我 ssh 到远程主机时,它一直挂在那里,直到我按下 Crtl+C 来自我的键盘
dew:~ # ssh dew00922
但是当我按下 Crtl+C 时,它会进入提示符
dew:~ # ssh dew00922
^C-bash-3.2#
-bash-3.2#
我正在尝试通过 ssh 发送陷阱信号,但这也挂起
dew:~ # ssh dew00922 'trap 2 && service autofs restart'
解决此问题的任何帮助。
【问题讨论】:
标签:
linux
unix
ssh
bash-trap
【解决方案1】:
当您 ssh 进入时,它会尝试运行 /etc/profile,然后运行 ~root/.profile(或 ~root/.bash_profile 或 ~root/.bash_login)和 ~root/.bashrc。其中一个脚本运行一个尝试访问挂起文件系统的命令。当您按下 ^C 时,您正在杀死脚本并从 dew0922 上的 bash 中获得提示。此时您已登录 dew00922 并可以运行命令。您运行的任何尝试访问挂起的文件系统的命令都会挂起。
【解决方案2】:
timeout 是针对此类问题的工具:
ssh dew00922 'timeout 2 service autofs restart'
更多信息请见man timeout