Это может звучать как противоречие в терминах, но недавно мне нужно было использовать однопользовательский режим (он же режим обслуживания) в течение некоторого времени (дней!) При попытке восстановить поврежденный массив RAID.
При этом я обнаружил, что хочу использовать вторую оболочку для таких вещей, как проверка / редактирование настроек в различных конфигурационных файлах или просмотр системных журналов, в то время как основная (и единственная) консоль связана, выполняя некоторый процесс восстановления.
Какой будет рекомендуемая команда для запуска второй оболочки на другом tty?
Очевидно, что одним из методов может быть использование screen
в tty1, но это не совсем просто переключать сеансы с Alt-F1, Alt-F2 и т. Д.
screen
так же просто, как это. Ctrl AP не намного хитрее, чем Alt F1 ...screen
иtmux
для управления окнами TUI, не всегда работают. Иногда вам нужно реальноеttyX
устройство, а неpts
.Ответы:
Там же команда специально разработан для этой ситуации:
openvt
. Просто запуститеopenvt
свою оболочку на tty1, и вы найдете оболочку, запущенную на первом tty, на которой еще ничего не было (вероятно, tty2). Есть несколько опций, которые могут оказаться полезными; см. справочную страницу openvt.Поскольку это не вход в систему, управляемый getty, при выходе из новой оболочки вы не увидите подсказки входа в систему. Tty просто отключится, поскольку на нем не будет запущено ни одного процесса, но вы все равно сможете переключаться назад и вперед (Alt-F1 Alt-F2) и смотреть, что было на экране при выходе из оболочки. Команда
deallocvt
уничтожает ttys, которые находятся в этом подобном зомби состоянии, возвращаясь к исходному состоянию «Alt-F2 ничего не делает».Первоначально эти команды назывались
open
иdisalloc
, но в конце концов кто-то решил изменить их, потому что они были слишком общими, и дислокация была оценена как «не слово».В старые времена драйвер клавиатуры и init были обычным образом настроены так, что Alt + Up работал
open
, так что он действовал как горячая клавиша для запуска оболочки на новой консоли. Вы все еще можете найти остаток этой старой конфигурации, закомментированный, в вашем/etc/inittab
. (Если вы не используете какой-то необычный новый init, у которого нетinittab
.)Там есть аналогичный вопрос здесь
источник
openvt
. +1.openvt
оказался очень полезным. Спасибо за привлечение новой команды к моему уведомлению.Вы можете породить еще одного,
getty
сколько захотите. Загрузитесь в однопользовательском режиме, затем запуститеgetty
на tty2:Вы можете прямо сейчас Alt+ F2на новый терминал. Повторите для дополнительных ttys по мере необходимости. Возможно, вы могли бы сделать что-то более чистое и просто настроить,
/etc/inittab
чтобы автоматически обрабатывать это в однопользовательском режиме.источник
init
, он не возрождается, если он умирает./etc/inittab
и/etc/rc1.d/S??single
по крайней мере.Вы, вероятно, можете обойтись без дополнительного экземпляра оболочки, используя
JOB CONTROL
в своей текущей оболочке. Это задокументировано на странице руководстваbash(1)
.Вы можете просто приостановить задачу, используя последовательность Ctrl+ Zпо умолчанию, хотя она может быть настроена в вашем терминале по-другому, проверьте вывод
stty -a
:Вы можете проверить свою работу, выдав
jobs
:Выведите одного из них на передний план:
Или возобновить это в фоновом режиме:
Этот метод не имеет многих преимуществ
screen
илиtmux
, но может быть одинаково полезен в некоторых ситуациях.источник
ddrescue
я не хочу прерывать и возобновлять его, даже если он настроен для этого ..csh
, напримерtcsh
, илиzsh
), поэтому упоминание его man-страницы в этом случае будет неточным. С другой стороны, это не отвечает на вопрос, как задано.Подумайте об использовании терминальных мультиплексоров, таких как tmux или screen.
Узнайте больше о tmux здесь: https://github.com/tmux/tmux/wiki
источник
screen
и чувствовал, что другие мультиплексоры были еще более излишними. Все, что мне нужно, это простая вторая консоль.screen
ваш вопрос. Было поздно.