我有一个程序,在子程序中ssh进入服务器并执行命令并返回。父级通过信号处理子级(SIGCHLD,SIG_IGN)。有没有一种方法可以让孩子在ssh服务器没有响应时超时,从命令行ssh并等待另一台服务器永远?
答案 0 :(得分:0)
来自ssh_config(5)
:
ConnectTimeout
Specifies the timeout (in seconds) used when
connecting to the SSH server, instead of using the
default system TCP timeout. This value is used only
when the target is down or really unreachable, not
when it refuses the connection.
你可以看到它足以缩短延迟:
$ time ssh -oConnectTimeout=1 ehrlichman
ssh: connect to host ehrlichman port 22: Connection timed out
real 0m1.038s
user 0m0.000s
sys 0m0.000s
$
但它可能无法增加对永远的延迟;允许TCP握手花费的时间比内核配置为等待的时间似乎不太可能。