У меня есть процесс, который ожидает, что соединение через SSH-туннель выполняется правильно, и я использую следующую команду:
ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -N &
Я успешно запускал это в течение 8 месяцев, недавно нашему хостинг-провайдеру пришлось внести изменения в оборудование, чтобы обновить нашу машину, и обновил нашу машину новым ядром для Ubuntu. Он прошел путь от 4.8.3-x86_64-linode76 до 4.8.6-x86_64-linode78.
После множества проблем, нам пришлось обновить команду так:
ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -fN
При изучении документации ssh параметр -f
Запрашивает ssh перейти в фоновый режим непосредственно перед выполнением команды. Это полезно, если ssh собирается запрашивать пароли или парольные фразы, но пользователь хочет сделать это в фоновом режиме. Это подразумевает -n. Рекомендуемый способ запуска программ X11 на удаленном сайте - это что-то вроде ssh -f host xterm.
При исследовании команды bash для «&»
Поместите процесс в фоновый режим (см. Многозадачность в разделе «Промежуточное использование> Операционная система UNIX»).
Есть ли принципиальная разница в этих 2 командах?
источник