Назад | Перейти на главную страницу

Почему в разделе «Задания» не отображается открытый туннель SSH?

Я запускаю ssh-туннель вот так:

ssh -f -N $PORT:127.0.0.1:$port example.com

то -f помещает ssh в фоновый режим, чего я и хочу. Это работает, поскольку настроен туннель SSH. Но если я использую jobs Я не вижу в списке соединение ssh. Как придешь?

Потому что вы не использовали bash для отправки в фоновый режим. jobs отчеты только о процессах, которые сам bash отправил в фоновый режим; это был сам ssh, который "демонизировал" его, как сказал Эрикслав. Чтобы получить работу, чтобы сообщить об этом, вы должны:

ssh -N $PORT:127.0.0.1:$port example.com &

Скорее всего, процесс ssh был демонтирован, отключившись от оболочки. Вы можете думать об этом так (но, возможно, не в этом порядке):

Запущенный вами процесс ssh фактически закрыл все файловые дескрипторы (stdin, stdout, stderr), отключился от tty и разветвил еще один дочерний ssh. затем вызвал выход на себя. В результате дочерний процесс осиротел, и исходный процесс ssh фактически «завершился».

В результате исходный процесс ssh завершен, и осиротевший процесс больше не является «дочерним» вашей оболочки.

Вместо этого используйте ps -ef или ps -fu $ USER, чтобы увидеть интересующий вас процесс ssh.

Вы можете увидеть, какая программа слушает port используя команду:

lsof -i :port

Это даст вам ssh pid.