4

/etc/inittab には 2 つのエントリがありました。

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

rcS は、通常はアプリケーションを開始するシェル スクリプトですが、特別なケースでは、アプリケーションを終了するために「return」を呼び出します。これにより、メンテナンスを行うことができるシェル プロンプトが表示されるため、明らかに /bin/sh が tty を引き継ぐことができます。

inittab は次のようになります。

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

rcS スクリプトで "/bin/bash -i" を実行してシェルを開始します。これは、通常は使用されない 2 番目のシェル (メモリの制約のため) を常に実行したくないためです。

しかし、作成された bash にはジョブ制御機能がなく、非常に制限されています。

私の質問は、以前のソリューションで処理された init と同じ方法でシェルを作成 (およびおそらく rcS スクリプトを終了) して、ジョブ制御を備えたシェルを再び取得することはできますか?

4

1 に答える 1

4

これは、実行している OS によって異なります。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
于 2011-05-19T20:40:36.387 に答える