Если у вас когда-нибудь отваливалась консоль в процессе компиляции ядра или какой-нибудь толстой программы, то мысль о том, как бы запустить процесс на сервере без привязки к удаленному соединению обязательно вас посещала.
Пожалуй, самое популярное решение - утилита screen. Screen имеет широкий функционал, но даже при использовании по минимуму может принести много пользы. Итак, устанавливаем:
cd /usr/ports/sysutils/screen
make config && make && make install
Утилита готова к использованию:
screen
[Enter]
Всё, вот ваша заскриненая консоль. Можно запустить процесс, к примеру, компиляции, затем нажать Ctrl+a, затем d. И запущенный процесс будет идти в фоне на сервере, без привязки к удаленной консоли и даже если она отвалится работа не остановится. Вернуться в screen можно командой:
screen -r
По идее этого достаточно, но утилита позволяет делать более интересные вещи. Например, можно создать множество виртуальных консолей со своими именами:
screen -S testing
Возврат:
screen -r testing
Посмотреть список виртуальных консолей:
screen -ls
Если скрин умер (в списке показывается с пометкой dead), то его можно убить командой:
screen -wipe
В каждом скрине можно создать дополнительные окна. Вот управляющие клавиши (предварительно следует нажать Ctrl+a):
c - создать окно,
n - следующее окно,
p - предыдущее окно,
" - двойная ковычка, позволяет увидеть список окон и переключиться между ними,
' - одинарная кавычка, открывает поле ввода номера окна для переключения
? - вызвать список всех команд.
Выход из окна - команда exit.
Это лишь малая часть возможностей утилиты screen. С помощью неё можно с ходу запускать программы в свернутом экране, она может сообщать о завершенном процессе, настройки утилиты могут отличаться для каждого пользователя, есть возможность выводить дополнительную информацию в строке состояния и так далее.
0 коммент.:
Отправить комментарий