Управление несколькими терминалами с помощью Screen

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Команда screen чрезвычайно полезна для одновременного запуска нескольких скриптов в фоновом режиме. Это позволяет запускать длительные задачи без необходимости оставлять открытым отдельный терминал для каждой из них. Ниже мы рассмотрим, как использовать screen для запуска скриптов в фоновом режиме и управления этими сессиями.

Пример использования команды screen
Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 98%. Он получил 96% положительных отзывов от учащихся.

Запуск скриптов в фоновом режиме

У вас есть три скрипта, выполняющие различные задачи в директории ~/project.

Откройте терминал (① или ② на рисунке) в среде и введите следующую команду:

ls ~/project
Вывод списка файлов проекта в терминале

Если вы хотите запустить эти 3 скрипта одновременно, вы можете сделать это следующим образом:

Три скрипта, запущенных одновременно

Теперь мы будем использовать screen для одновременного запуска этих скриптов в отсоединенных сессиях.

Для запуска этих скриптов в фоновом режиме с использованием screen мы будем использовать опцию -dmS:

  • -d запускает сессию и сразу же отсоединяется от нее.
  • -m заставляет screen создать новую сессию.
  • -S позволяет нам дать имя сессии для удобства ссылки на нее.

Запуск скриптов

Откройте один терминал и перейдите в директорию, содержащую ваши скрипты. Затем запустите каждый скрипт в отдельной сессии screen с использованием следующих команд:

screen -dmS task1./script1.sh
screen -dmS task2./script2.sh
screen -dmS task3./script3.sh

Управление сессиями

После запуска скриптов вы можете управлять этими сессиями screen различными командами.

Список всех сессий

screen -ls
Вывод списка сессий screen

Эта команда покажет все запущенные сессии screen.

Возвращение к сессии

screen -r session_name

Если вы хотите проверить вывод или взаимодействовать с определенным скриптом, используйте эту команду, чтобы вернуться к его сессии. Замените session_name именем, которое вы присвоили при запуске скрипта (например, task1, task2 или task3).

Отсоединение от сессии

После того, как вы проверили сессию, вы можете отсоединиться от нее и позволить ей продолжать работу в фоновом режиме, нажав Ctrl-a, а затем d.

Завершение сессии

Для завершения сессии вернитесь к ней с помощью screen -r session_name, а затем введите exit или нажмите Ctrl-d.

Заключение

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

Попробуйте использовать screen, чтобы узнать, как он может наилучшим образом вписаться в ваш рабочий процесс и повысить вашу продуктивность!