Якщо ні -Mпараметр, ні змінна env не вказано, який порт використовується для моніторингу?
У моїх кількох тестах на клієнті Kubuntu були використані випадкові високі порти в діапазоні приблизно (моя оцінка) 30000-60000. Порівняйте: ефемерний порт . Я маю на увазі, що перший ( port) був обраний випадковим чином, другий - трохи вище нього ( port+1).
-Mбез належного аргументу ( autossh -M -- …або autossh -M foo …) виходить негайно; він не друкує жодної помилки, але статус виходу є 1.
autossh -M 0 … дійсно вимикає функцію.
Але ...
Я спробував проаналізувати джерело і не знайшов цієї випадковості. Потім я виявив це:
$ 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, …
Це означає, що в Kubuntu у мене є обгортка, яка випадковим чином вибирає порт, якщо він не вказаний -Mнормою AUTOSSH_PORT. Я не публікую тут повний код, але я прочитав його: якщо обгортка не може випадково потрапити на невикористану пару портів (тобто portі port+1) за 42 спроби, він, нарешті, намагається 21021і 21022; якщо ці порти неможливо використовувати, обгортка виходить із помилкою.
Якщо обгортку вдасться, вона експортує перший порт як AUTOSSH_PORTі виконує real autossh( /usr/lib/autossh/autossh). Цей виконуваний файл вимагає -M або в AUTOSSH_PORTіншому випадку він не запуститься.
Моя остаточна відповідь: немає порту моніторингу ванілі за замовчуваннямautossh . Ви повинні встановити AUTOSSH_PORTабо використовувати -M. Це незручно, звідси і обгортка. Ви можете мати або не мати його у вашому Linux. Можливо, деякі аромати Linux використовують обгортки, які встановлюють та використовують фіксований порт за замовчуванням.