2010-06-30 5 views
4

Мы использовали две записи в нашей/и т.д./inittab:Как запустить Линукс оболочку, как из/и т.д./inittab

::sysinit:/etc/init.d/rcS 
ttyS0::respawn:-/bin/sh 

RCS является сценарий оболочки, который обычно начинается наше приложение, но в специальном случай, который мы назвали «return», чтобы завершить его, что, по-видимому, позволяет/bin/sh взять на себя tty, поскольку мы получили приглашение оболочки, где мы могли бы провести некоторое обслуживание.

Теперь inittab выглядит следующим образом:

::once:/etc/init.d/rcS 

теперь запустить оболочку, выполнив «/ bin/Баш -i» в сценарии RCS, так как мы не хотим, чтобы всегда запускать вторую оболочку (из-за ограничений памяти), которые обычно никогда не используются.

Но созданный bash не имеет управления работой, что очень ограничивает.

Так что я задал вопрос, могу ли я создать оболочку (и, возможно, закончить скрипт rcS) так же, как обработанная init, сделанная в нашем предыдущем решении, чтобы я снова получил оболочку с контролем работы?

+1

Входит на сайт superuser.com? –

+2

Вероятно, вы получите лучший ответ на superuser.com, но я бы попробовал 'exec login -f root', где у вас в настоящее время есть'/bin/bash -i'. Я * думаю *, который правильно устанавливает терминал. – zwol

ответ

4

Это зависит от того, какая ОС вы используете. Вот пример, который работает на RHEL/CentOS.

6:2345:respawn:/sbin/mingetty --autologin root tty6 

Вот что сделал кто-то другой для подобного трюка.

openvt -f -c 12 -w -- sh -c "unicode_start; echo -e '$NORPT'; exec $LOGINSH" >/dev/tty1