Настройка screen в OpenWrt

Утилита screen позволяет создавать виртуальные пользовательские сессии, каждая из которых может включать несколько виртуальных терминалов с возможность переключения между ними. При завершении фактической сессии (отключении от консоли) все виртуальные сессии продолжат работать. За счет этого можно легко запускать в “фоновом” режиме программы, не имеющие встроенной поддержки работы в фоне, либо запускать и оставлять работать скрипты и приложения, ко вводу-выводу которых впоследствии будет возможность вернуться.

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

Заголовок окна screen

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

Добавляем в файл /etc/screenrc строки:

termcapinfo xterm*|rxvt*|kterm*|Eterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;\007'
hardstatus string "[screen %n%?: %t%?] %h"

Теперь заголовок screen будет совпадать с используемым в CentOS (Red Hat):

[screen 0: ash] root@OpenWrt:/path

В нем отображается и номер текущего виртуального терминала, и путь к текущему каталогу. Также, к примеру, в случае неудачного переключения между терминалами в этот же заголовок будет выводиться сообщение об ошибке.

Исправление /var/run/utmp

При каждом запуске screen с системой, построенной вокруг стандартного busybox, возникает несущественная, но малоприятная ошибка:

/var/run/utmp: No such file or directory

Несмотря на нее, screen все равно запускается и работает корректно.

Для решения этой проблемы необходимо активировать BUSYBOX_CONFIG_FEATURE_UTMP при пересборке прошивки. В menuconfig данная опция расположена по следующему пути: Base system -> busybox -> Busybox Settings -> General Configuration -> Support utmp file.

К сожалению, в случае использования предкомпилированных готовых прошивок корректно эту проблему решить не представляется возможным. В качестве обходной меры можно добавить в /etc/rc.local строку touch /var/run/utmp.

This entry was posted in Сеть и интернет and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>