Como posso capturar o status de saída de 'nc' quando executado a partir de 'timeout'?

2

Eu quero testar a conectividade com um host arbitrário usando o netcat. Parece que o argumento -w na verdade não fecha a conexão após 5 segundos. (Isso está no Ubuntu 14.04 e netcat-traditional 1.10-40). Só continuará tentando conectar por 5 segundos. O que eu realmente quero saber é se nc foi capaz de se conectar com sucesso ao host (status de saída 0).

Para contornar o problema nc , executei nc do comando timeout . Isso produz a funcionalidade desejada, porém o tempo limite sempre sai com um código de status 124.

O que eu realmente quero é o status de saída de nc . Como posso conseguir isso quando estou correndo timeout 5 nc -w 5 bach; echo $?

    
por Server Fault 30.05.2017 / 16:32

1 resposta

2

Na página timeout man (GNU coreutils 8.22) ...

--preserve-status
exit with the same status as COMMAND, even when the command times out

Então seu comando se tornaria

timeout --preserve-status 5 nc -w 5 bach; echo $?
    
por 30.05.2017 / 17:26