Как именно использовать screen в Linux / SSH-оболочке?

Вопрос или проблема

Я прочитал руководство и онлайн-помощь, но все равно не могу понять идею команды screen. Пусть я SSH на свой linux shell. Внутри я хочу запустить программу, которая будет работать 8 часов:

  1. Я создаю “отделенный экран”, введя screen, а затем crtl+a, crtl+d, чтобы отсоединиться.
  2. Затем я запускаю свою программу my_prog

Что делать потом? Как вернуться к своему обычному терминалу и продолжить свою обычную сессию? Если я просто закрою SSH-окно и переподключусь, то моя программа остановится.

Мой вопрос заключается в том, какие конкретные шаги я должен сделать, чтобы:

  1. Работать в оболочке как обычно
  2. Запустить screen, чтобы запустить программу в фоновом режиме
  3. Продолжить работу в старой оболочке
  4. Выйти из SSH сессии
  5. Установить новую SSH сессию и переключиться на мою программу, которая работала, пока меня не было

Или это наоборот? Я ввожу my_prog &, затем вызываю screen и отсоединяюсь, а затем закрываю окно терминала?

  1. Вы запускаете screen,
  2. Запускаете программу в screen,
  3. А затем отсоединяете её.
  4. screen -R, чтобы снова подключиться.

Если вы запускаете много независимых screen сессий, используйте опцию -S, чтобы называть ваши сессии и подключаться к именованным сессиям, или используйте -ls, чтобы перечислить существующие сессии и подключиться к ним.

  1. Запустите сессию screen

screen -S session_name

  1. ssh в систему

ssh -i path/to/your-key.pem ec2-user@your-ec2-public-ip

  1. Запустите программу, например, jupyter notebook

jupyter notebook --no-browser --port=8888

  1. Отсоединитесь от сессии screen: нажмите следующую последовательность клавиш, чтобы отсоединить сессию

Ctrl+A, затем D

  1. Присоединитесь снова к сессии screen

    screen -r my_jupyter_session

  2. Дополнительно – перечислите активные сессии

    screen -ls

Ответ или решение

Как использовать команду screen в Linux через SSH

Команда screen является мощным инструментом для управления несколькими виртуальными терминалами внутри одной сессии SSH. Благодаря своей функциональности, она позволяет запускать длительные процессы даже после отключения от сессии, что особенно полезно для удаленных серверов. В данном объяснении мы рассмотрим полный процесс использования screen с учетом всех необходимых шагов.

Шаги по использованию screen в Linux через SSH:

  1. Запустите SSH сессию на своем сервере:
    Используя ваш SSH-клиент, подключитесь к серверу. Например:

    ssh -i path/to/your-key.pem username@server-ip
  2. Создайте новую сессию screen:
    После успешного подключения, создайте новую сессию screen с заданным именем для удобства управления:

    screen -S mysession

    Здесь mysession – это имя, которое вы присваиваете сессии, чтобы впоследствии легко ее найти и подключиться.

  3. Запустите свою программу:
    Теперь, находясь в сессии screen, как раз здесь и необходимо запустить длительную программу, например:

    my_prog
  4. Отключитесь от сессии screen:
    Для временного отключения сессии и возврата к обычному терминалу, используйте комбинацию клавиш:

    Ctrl+A, затем D

    Это позволит вам отделить сессию screen, при этом работающая программа продолжит выполняться в фоновом режиме.

  5. Продолжайте работать в обычной оболочке:
    После отсоединения, вы можете продолжать использование вашей SSH-сессии, запускать другие команды или приложения так же, как вы это делали раньше.

  6. Закройте свою SSH-сессию:
    Теперь вы можете без опасений закрывать ваше SSH-соединение. Программа, запущенная в сессии screen, будет продолжать выполняться независимо.

  7. Подключитесь снова к серверу:
    Когда вы хотите вновь подсоединиться к серверу, выполните вход через SSH заново:

    ssh -i path/to/your-key.pem username@server-ip
  8. Переподключитесь к вашей сессии screen:
    Для повторного подключения к уже существующей сессии screen, выполните:

    screen -r mysession

    Теперь вы можете увидеть вывод своего запущенного приложения и взаимодействовать с ним.

  9. Список активных сессий:
    Если вы забыли имя сессии или у вас несколько активных сессий, вы можете просмотреть список всех сессий с помощью команды:

    screen -ls
  10. Завершение сессии screen:
    Чтобы выйти из screen навсегда и завершить сессию, когда вы завершили работу с программой, используйте:

    exit

    Либо, если приходите к командной строке вашего приложения, просто введите exit или закройте приложение.

Зачем использовать screen?

Преимущества использования screen включают:

  • Устойчивость к отключениям: программы не завершаются при потере соединения.
  • Параллельная работа: возможность иметь несколько работающих сеансов одновременно.
  • Легкость в управлении: создание и переключение между сессиями без необходимости выполнять дополнительные команды или использования нескольких SSH-соединений.

Используя описанную выше последовательность шагов, вы сможете эффективно управлять фоновыми процессами на удаленном Linux-сервере, используя команду screen.

Оцените материал
Добавить комментарий

Капча загружается...