Мой личный антивзрыв нервов: благодаря tmux ни один процесс в Linux больше не падает!

Tux, the Linux mascot, wearing sunglasses and peeking from behind a large terminal window on a bright blue background.-1

Сегодня большинство популярных дистрибутивов Linux сильно упростили жизнь — в терминале мы работаем куда реже, чем прежде. Но когда без командной строки всё же не обойтись — особенно если вы управляете сервером удалённо, запускаете «долгие» процессы или сразу ведёте несколько задач — стандартных инструментов катастрофически не хватает. Вот тут-то и выручает tmux.

Сессии терминала изначально не рассчитаны на вечную жизнь

Всё рухнет, как только закроете окно

Терминал Linux в Ubuntu с редактором vim, открыт файл .bashrc.

Всё, что происходит в терминале, жёстко связано с окном, в котором вы работаете. Запустил я, например, Minecraft-сервер — он держится на конкретной сессии терминала. Стоит случайно закрыть окно — как сервер тут же падает.

Так обстоит дело практически со всеми задачами: копирование больших файлов, SSH-подключения, запуск сторонних программ, мониторинг системы — всё это исчезнет без следа, как только закроется терминал, если не предусмотрели способ сохранить сессию.

Иногда это даже плюс: если какая-нибудь программа зависла, достаточно просто захлопнуть окно. Никаких неожиданностей на фоне тоже не останется — и это приятно.

Открытое окно терминала Konsole на ноутбуке Kubuntu Focus Ir14.

Как использовать htop в Linux

Это не просто красивая “картинка” про мониторинг.

Но а что делать, если наоборот — вам кровь из носу надо, чтобы процесс не останавливался? Особенно выводит из себя, когда что-то обрывается во время SSH-сессии: одно отвалившееся соединение — и все команды накрылись, хотя вы только разогнались в настройках.

Дедушка Screen давно всё умел — но у tmux карты круче

Screen появился ещё десятки лет назад и до сих пор отлично решает проблему “привязки” сессии к отдельному процессу. Он очень прост, минималистичен, работает почти везде и часто установлен по умолчанию. Но Linux не стоит на месте — и вроде бы тот же Screen, а возможностей в tmux куда больше.

С tmux ваши процессы в терминале живут столько, сколько вам нужно

Tmux умеет всё, что Screen, — и даже больше!

Tmux — это настоящий терминальный мультиплексор. Он даёт возможность легко переключаться между разными задачами в одном окне, “отцеплять” процессы (чтобы они продолжали работать после разрыва соединения) и спокойно возвращаться к ним позже, когда потребуется.

Если часто сидите на удалённом сервере или работаете с машиной без графики (например, на headless-сервере Ubuntu), без tmux — как без рук.

Забудьте про случайно закрытые серверы и оборванные задачи!

Я сам познакомился с tmux как раз после того, как мой Minecraft-сервер умирал каждый раз, когда нечаянно закрывал терминал или обрывалось SSH-соединение (например, если Windows решила внезапно перезагрузиться или обновиться). Это сводило меня с ума!

Сейчас моя рутина проста: подключаюсь к серверу — первым делом запускаю новую сессию tmux.

Любую команду, запущенную в такой сессии, ничто не прервёт — даже если я отключусь или потеряю связь. А чтобы вернуться назад и продолжить управлять сервером или открыть админку, достаточно одной простой команды, и вы снова в деле — никаких сложностей.

И, конечно, это касается не только серверов. Планируете, к примеру, скопировать гигабайты файлов или решить задачу, которая займёт больше пары минут — tmux гарантирует, что процесс не накроется из-за потери соединения или случайного закрытия окна.

История всех команд под рукой — сколько бы вы ни работали

В терминале Linux всегда под рукой история команд — спасает десятки раз.

Ошиблись или “сломали” что-то? Всегда можно посмотреть, что именно запускали, быстро найти косяк и откатиться назад. Если приходится постоянно повторять длинные команды, не надо каждый раз вбивать их заново — просто прокрутите вверх и снова запустите.


Подпишитесь на рассылку — узнаете ещё больше хитростей по tmux!

Для меня отдельное преимущество tmux — огромная история ввода. Обычно она хранит несколько тысяч последних команд, а при желании этот лимит легко увеличить одним параметром в файле .tmux.conf в вашей домашней директории.

Многозадачность в Linux с tmux — на новом уровне

Самое приятное: если боитесь, что разрыв соединения оборвёт ваш процесс, — с tmux можно не переживать. Даже если у вас нет привычной графики, этот инструмент превращает работу в консоли из страха в удовольствие.

На “обычном” десктопе с графикой можно просто открыть новые окна терминала. А на сервере или в чистой консоли — никакими стандартными средствами не получится вести несколько задач параллельно. С tmux вы свободно создаёте нужное вам количество сессий, легко между ними прыгаете: одну задачу можно оставить надолго, другую завершить сразу — и всё будет идти своим чередом.

Тmux — must have для всех, кто управляет серверами самостоятельно

Какие бы крутые графические панели вы ни устанавливали, если хостите сервер сами — терминал однажды всё равно станет вашим лучшим другом. Tmux — не тот инструмент, которым пользуешься каждый день, но когда настанет его час, вы будете благодарить себя за то, что однажды изучили его.

Dell XPS 13 Plus 2023

Dell XPS 13 Plus с Linux “из коробки”

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

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

Также подписывайтесь на нас в:

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