ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Многозадачность в Linux с помощью командной строки

Один из самых раздражающих моментов при переходе от среды на базе Windows к использованию командной строки – потеря легкой многозадачности. Даже в Linux, если вы используете X Window system, вы можете использовать мышь, чтобы просто нажать на новую программу и открыть ее. В командной строке, однако, вы в значительной степени застряли с монозадачеостью. В этой статье мы покажем вам как перейти к многозадачности в Linux с помощью командной строки.

Фоновое и приоритетное управление процессами

Тем не менее, в Linux все еще есть способы многозадачности, и некоторые из них являются более всеобъемлющими, чем другие. Один встроенный способ, который не требует какого-либо дополнительного программного обеспечения, – это просто перемещение процессов в фоновом режиме и на переднем плане. Мы написали статью об этом. Однако она имеет некоторые недостатки.

Незащищенный

Во-первых, чтобы отправить процесс в фоновом режиме, сначала его нужно приостановить. Невозможно отправить уже запущенную программу в фоновый режим и поддерживать ее в одно время.

Во-вторых, вам нужно разбить рабочий процесс, чтобы начать новую команду. Вам нужно выйти из того, что вы сейчас делаете, и набрать больше команд в оболочку. Это работает, но это неудобно.

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

Из-за этих недостатков возникают огромные проблемы с управлением процессом фона и переднего плана. Лучшее решение – использовать утилиту командной строки «screen», как показано ниже.

Но сначала – вы откроете новый сеанс SSH

Не забывайте, что вы просто открываете новый сеанс SSH.

Это может быть неудобно, чтобы открыть новые сессии все время. И именно тогда вам нужен “screen”

Утилита screen позволяет создавать несколько рабочих процессов, открытых в то же время – ближайший аналог “windows”. По умолчанию он доступен в обычных репозиториях Linux. Установите его в CentOS/RHEL с помощью следующей команды:

sudo yum install screen
Многозадачность в Linux с помощью командной строки

Открытие нового экрана

Теперь начните сеанс, набрав “screen”.

Это создаст пустое окно в рамках существующего сеанса SSH и даст ему номер, который показан в заголовке, как это:

Многозадачность в Linux с помощью командной строки

 

Наш экран здесь имеет номер “0”, как показано. На этом скриншоте мы используем фиктивную команду” read”, чтобы заблокировать терминал и заставить его ждать ввода. Теперь скажем, мы хотим сделать что-то еще, пока мы ждем.

Чтобы открыть новый экран и сделать что-то другое, мы печатаем:

ctrl+a c

 

“ctrl+a” является комбинацией клавиш по умолчанию для управления экранами в программе экрана. То, что вы вводите после него, определяет действие. Так например:

Если мы нажмем “ctrl+a c”, мы получим новый экран с новым номером.

Вы можете использовать клавиши курсора для навигации по списку и перейти к экрану, который вы хотите.
Экраны – это самое близкое, что вы получите к “windows”, как система в командной строке Linux. Конечно, это не так просто, как щелчок мышью, но графическая подсистема очень ресурсоемкая. С экранами, вы можете получить почти такую же функциональность и включить полную многозадачность!

Exit mobile version