Существует решение с помощью Vim.
Во-первых, нам нужен макрос Vim, который сделает большую часть работы, я сохраняю ее в ~/.vim/plugin/less.vim
:
" :Less
" turn vim into a pager for psql aligned results
fun! Less()
set nocompatible
set nowrap
set scrollopt=hor
set scrollbind
set number
execute 'above split'
" resize upper window to one line; two lines are not needed because vim adds separating line
execute 'resize 1'
" switch to lower window and scroll 2 lines down
wincmd j
execute 'norm! 2^E'
" hide statusline in lower window
set laststatus=0
" hide contents of upper statusline. editor note: do not remove trailing spaces in next line!
set statusline=\
" arrows do scrolling instead of moving
nmap ^[OC zL
nmap ^[OB ^E
nmap ^[OD zH
nmap ^[OA ^Y
nmap <Space> <PageDown>
" faster quit (I tend to forget about the upper panel)
nmap q :qa^M
nmap Q :qa^M
endfun
command! -nargs=0 Less call Less()
Во-вторых, для эмуляции пейджера я должен вызвать энергию так, чтобы она была:
Я соединил это как сценарий помощника в ~/bin/vimpager
:
#!/bin/bash
what=-
test "$@" && what="$@"
exec vim -u NONE -R -S ~/.vim/plugin/less.vim -c Less $what
В-третьих, я должен переопределить $PAGER переменной среды, но только для psql (добавьте это к моему ~/.bash_aliases
):
if which vimpager &>/dev/null; then
alias psql='PAGER=vimpager psql';
fi
После инициализации и монтирования корневой файловой системы, запускается Linux /sbin/init
который продолжается с инициализациями пространства пользователя включая монтирование /proc
Скорее всего, Ваш rcS
или безотносительно конфигурации init
чтения не делают этого, и необходимо сказать это.
Если у Вас есть приглашение оболочки, можно смонтироваться /proc
вручную с:
mount -t proc p /proc
Обратите внимание что /proc
каталог должен существовать, прежде чем можно будет смонтировать что-то там. Необходимо включать его в корневое изображение.
2) вероятно из-за 1) - ps
использование /proc
получить информацию о выполнении процессов.
1) или потому что инициализация, как ожидают, не сделает это или потому что ей не удается сделать это. Проверьте то, что распределение, как предполагается, делает на начальной загрузке - как система должна быть поднята.
Вещи можно попробовать:
смонтироваться /proc
, например: mount -t proc proc /proc
- второй аргумент произволен (это - то, что показывает источником монтирования). Проверьте то, что работает с PID=1
регистрация /proc/cmdline
какие параметры Ваше ядро получает на начальной загрузке. Если это содержит init=...
Вы, возможно, должны были бы изменить его на, например. /sbin/init
или удалите его, чтобы позволить ядру попытаться разрешить init, который будет выполнен сам. Необходимо сделать это в конфигурации загрузчика (для R-пи, это находится в некотором текстовом файле на SD-карте IIRC).
Проверьте, что желаемый init исполняемый файл существует - Busybox обычно имеет тонны символьных ссылок, указывающих на его двоичный файл так, чтобы можно было использовать command [args]
вместо busybox command [args]
. Ваш мог бы скучать по ним.
Первым делом смонтируйте его в /etc/inittab
То есть вы inittab
должны начать с:
::sysinit:/bin/mount -t proc proc /proc
Это делается с помощью Buildroot 2017.02.
У меня была эта проблема с очень простым -контейнером Linux. Я обнаружил, чтоps
(и другие вещи )не работали при первоначальном запуске контейнера, но все было в порядке, если контейнер перезапускался.
В моем образе контейнера не было пустого каталога /proc
, поэтому busybox некуда было монтировать файловую систему proc. Тем не менее, он был создан позже (. Я предполагаю, что Busybox сделал это в какой-то момент ), что означало, что он существовал при последующих перезапусках и позволял ему успешно монтироваться.
Я воссоздал свой образ, включив в него /proc
, и после этого все заработало.
Таким образом, похоже, что корневая файловая система должна содержать каталог /proc
для монтирования busybox. Никаких дальнейших действий (ручное монтирование, записи inittab и т. д. )кажутся необходимыми (по крайней мере в контейнере ).
Несоответствие заключается в том, что busybox, кажется, счастлив создавать аналогичные каталоги, в которые ему нужно монтироваться, например /sys
.