If neither the
-M
option nor the env variable is specified, what port is used for monitoring?
Nos meus vários testes no cliente Kubuntu, as portas altas aleatórias foram usadas em um intervalo de (minha estimativa) 30000-60000
. Compare: porto efêmero . Quero dizer que o primeiro ( port
) foi escolhido aleatoriamente, o segundo foi logo acima dele ( port+1
).
-M
sem um argumento apropriado ( autossh -M -- …
ou autossh -M foo …
) sai imediatamente; ele não imprime nenhum erro, mas o status de saída é 1
.
autossh -M 0 …
realmente desativa o recurso.
Mas…
Eu tentei analisar a fonte e não encontrei essa aleatoriedade. Então eu descobri isso:
$ type autossh
autossh is /usr/bin/autossh
$ file /usr/bin/autossh
/usr/bin/autossh: POSIX shell script, ASCII text executable
$ head -n 4 /usr/bin/autossh
#!/bin/sh
# little wrapper to choose a random port for autossh, falling back to $fallback_port
fallback_port="21021"
$ tail -n 1 /usr/bin/autossh
exec /usr/lib/autossh/autossh "$@"
$ file /usr/lib/autossh/autossh
/usr/lib/autossh/autossh: ELF 64-bit LSB executable, …
Isso significa que no Kubuntu eu tenho um wrapper que escolhe aleatoriamente uma porta, se não for especificado por -M
nor AUTOSSH_PORT
. Eu não estou postando o código completo aqui, mas eu li: se o wrapper não pode acertar aleatoriamente um par de portas não utilizadas (ou seja, port
e port+1
) em 42 tentativas, ele finalmente tenta 21021
e 21022
; se essas portas não puderem ser usadas, o wrapper sairá com um erro.
Se o wrapper for bem-sucedido, ele exportará a primeira porta como AUTOSSH_PORT
e executará o% realautossh
( /usr/lib/autossh/autossh
). Este executável requer -M
ou AUTOSSH_PORT
, caso contrário não será executado.
Minha resposta final é: não há porta de monitoramento padrão para baunilha autossh
. Você precisa definir AUTOSSH_PORT
ou usar -M
. Isso é inconveniente, daí o wrapper. Você pode ou não ter um no seu Linux. É possível que alguns tipos de invólucros do Linux usem e usem uma porta padrão fixa.