ss código de saída sempre 0

0

Estou tentando colocar em um script uma verificação para verificar se há um processo de escuta em uma porta.

Estou tentando usar ss , mas parece sempre produzir 0 como um código de saída, também se a expressão não for correspondida.

Neste host eu tenho um serviço de escuta na porta 53, que corresponde e tem o código de saída 0

$ ss -ntl   sport = :53 ; echo $? 
State       Recv-Q Send-Q                                                            Local Address:Port                                                                           Peer Address:Port              
LISTEN      0      5                                                                     127.0.1.1:53                                                                                        *:*                  
LISTEN      0      5                                                                     127.0.0.1:53                                                                                        *:*                  
LISTEN      0      5                                                                           ::1:53                                                                                       :::*                  
0

Se eu mudar a porta para 54, onde nada está escutando, o código de saída permanece sempre 0

$ss -ntl   sport = :54 ; echo $? 
State       Recv-Q Send-Q                                                            Local Address:Port                                                                           Peer Address:Port              
0

Eu verifiquei o manual e não há nada sobre o código de saída.

Estou fazendo algo errado ou esse comportamento está correto?

testado tanto no Ubuntu 16.04 como no centos 7

    
por user320149 09.08.2017 / 13:03

1 resposta

1

Esse comportamento é normal, ss não altera seu código de saída para indicar se o filtro corresponde a alguma coisa.

Se você quiser testar os resultados de ss , você precisará pós-processá-los com alguma outra ferramenta, por exemplo, grep (que altera seu código de saída dependendo se ele corresponde ):

ss -ntl sport = :53 | grep -q :53; echo $?
    
por 09.08.2017 / 13:14