Wed 22 Mar 2006
Использование Оконного Менеджера Screen Для Запуска Программ в Фоновом Режиме
Posted by Scoundrel under Admin-tips ·
Иногда, общаясь с Unix-администраторами, я удивляюсь, слыша о том, что они не знают ничего об очень полезной UNIX-утилите - оконном менеджере Screen. Вот почему я решил рассказать здесь о том, как я использую его в своей повседневной работе.
Screen - это полноэкранный оконный менеджер, который разделяет физический терминал между несколькими процессами (обычно - между командными оболочками). Для каждого виртуального терминала существует свой прокручиваемый буфер истории и даже существует механизм copy-and-paste, позволяющий мользователю копировать текст между окнами. Когда уьилита screen запускается в первый раз, она создает пустое окно с командным интерпретатором (shell) внутри или сразу запускает указанную ей при старте команду. После этого она исчезает из поля видимости и позволяет Вам использовать программу так, как Вы делаете это обычно. Далее, в любой момент, вы можете создать новые (полноэкранные) окна с другими программами, убить текущее окно, просмотреть список активных окон, включить или выключить журналирование сессии, копировать текст между окнами, просматривать историю вывода в окне, переключаться между окнами и т.д. Все окна исполняют свои программы совершенно независимо друг от друга. Программы продолжают выполняться в своих окнах даже тогда, когда вы их не видите или даже Ваша сессия отключена от терминала.
В ежедневной админской работе эта утилита может быть полезна для запуска любых основанных на curses задач в фоновом ржиме. Для примера, если Вам нужно запустить полноэкранный клиент для bittorent (BitTornado)
для скачивания необходимых файлов, Вы не можете использовать обычный метод запуска задач в фоновом режиме при помощи утилиты nohup, т.к. это приложение требует полнофункционального терминала и не может быть запущено в фоне.
Если Вам необходимо запустить какое-либо приложение в фоновом режиме, Вы можете выполнить следующие шаги:
- Создать пустую сессию при помощи screen:
# screen -dR some_screen_name - Запустить Ваше полноэкранное приложение:
# btdownloadmany . - Отключиться от терминала при помощи нажатия Ctrl+a, d на Вашей клавиатуре.
Теперь Ваша программа работает в полноэкранном фоновом режиме. Вы можете отключиться от сервера или делать все, что захотите. Когда Вам понадобится посмотреть на текущее состояние программы, вы можете просто подключиться к фоновому терминалу при помощи следующей команды:
Если Вы забыли имя фоновой сессии, вам достаточно просто набрать следующую команду чтобы увидеть список всех запущенных терминалов на данном сервере:
Как видите, утилита screen может быть очень полезна для запуска приложений в фоновом режиме на удаленных серверах и, даже, может послужить заменой старому методу перевода задач в фон при помощи жутких конструкций типа
.
- 20 great jobs that don’t require a degree
- How to run GUI-programs on a server without any monitor
- Puppet - Admin’s Best Friend
- MySQL Master-Master Replication Manager
- Релиз ПО для управления кластерами с MySQL Master-Master репликацией
March 22nd, 2006 at 5:05 pm
Спасибо, довольно познавательно..
August 8th, 2006 at 2:04 pm
Very very useful!
Indeed: I though I had quite some Unix experience, but didn’t know about the existence of screen.
November 16th, 2006 at 8:12 am
Да - как раз то что искал. Спасибо!!! Весьма и весьма своевременно!
March 9th, 2007 at 9:50 pm
Спасибо!
То что искал; очень полезно и просто!
November 28th, 2007 at 6:07 am
awesome.
Great guide and real useful. Screen is perfect for my remote FreeBSD box running rtorrent. Thanks a bunch.