Ядро управляет ресурсами. Ресурсы включают процессорное время, память и периферийные устройства. Это делает это путем прямого общения с ресурсами и воздействия интерфейса пространства пользователя.
Инструменты Пространства пользователя включают основные утилиты как ls, кошка, dd, ln, монтируются и т.д. Они позволяют пользователю работать с ресурсами, которые обеспечивает ядро. Linux (в противоположность BSD, OSX и другим Нельдам) является основным пользователем инструментов GNU, но даже все системы Linux не используют их; альтернативный набор инструментов для Linux обеспечивается Busybox.
Оболочка обеспечивает среду, которая позволяет пользователю использовать Инструменты Пространства пользователя. Оболочки в качестве примера включают удар, ksn, zsh, и рыбу. Они обычно обеспечивают подсказку, при которой пользователь может ввести команды, которые запускают инструменты пространства пользователя.
Это - намного более высокий слой, там обычно существует сервер дисплея, который ответственен за управление графическим, аудио, и ресурсы ввода-вывода и обеспечение интерфейса к высокоуровневым инструментам. Обычно, менеджер по оформлению является слоем выше сервера дисплея и может обеспечить вещи как пользовательское управление входом в систему и управление сеансами. Выше этого обычно менеджер окон. Менеджер окон обеспечивает регионы, в которых приложения могут представить свое содержание, он также позволяет пользователю взаимодействовать с этими регионами путем перемещения, изменяя размер и переупорядочивая их.
Существует умный взлом, упомянул здесь что использование GDB для присоединения к процессу и названной утилите dupx
оборачивает эту функциональность.
От dupx
страница справочника:
Dupx является простой утилитой для переотображения файлов уже запускающей программы. Оболочки как Bash позволяют легкое входной/вывод/ошибку перенаправление в то время, когда программа запущена с помощью
>, < -
как синтаксис, например:echo 'redirect this text' > /tmp/stdout
перенаправит выводecho
кому:/tmp/stdout
.Стандартные оболочки однако не обеспечивают возможность переотображения (перенаправления) вывода (или вводят, или ошибка) для уже запущенного процесса. Dupx пытается решить эту проблему при помощи
dup(2)
системный вызов изнутриgdb(1)
. Dupx в настоящее время реализуется как простая обертка оболочки вокруг agdb
сценарий.
Используйте команду screen log
(!)
Поскольку процесс уже запущен в сеансе экрана, это просто вопрос экран для регистрации вывода этого окна:
Переключитесь в окно сценария, Ca H для регистрации.
Теперь вы можете:
$ tail -f screenlog.2 | grep whatever
Из справочной страницы экрана:
log [on | off]
Начать / остановить запись вывода текущего окна в файл "screenlog.n" в каталог окна по умолчанию, где n - номер текущего окна. Это имя файла можно изменить с помощью команды logfile. Если параметр не указан, состояние регистрации переключается. Журнал сеанса добавляется к предыдущему содержимому файла, если он уже существует. Текущее содержимое и содержимое истории прокрутки не включаются в журнал сеанса. По умолчанию выключено.