2010-06-30 15 views
4

Nous avons déjà eu deux entrées dans notre/etc/inittab:Comment lancer un shell linux à partir de/etc/inittab

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

rcS est un script shell qui commence normalement notre application, mais dans une spéciale cas, nous avons appelé "return" pour le terminer, ce qui permet apparemment à/bin/sh de prendre en charge le tty car nous avons reçu une invite de shell où nous pouvions faire un peu de maintenance.

Maintenant, le inittab ressemble à ceci:

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

Nous commençons maintenant la coquille en exécutant «/bin/bash -i » dans le script rcS, comme nous ne voulons pas courir toujours une seconde coque (en raison de contraintes de mémoire) qui n'est normalement jamais utilisé.

Mais le bash créé n'a pas de contrôle de travail, ce qui est très limitatif. Donc, ma question est, puis-je créer un shell (et peut-être terminer le script rcS) de la même façon que l'init a traité dans notre solution précédente pour que je récupère un shell avec le contrôle du travail?

+1

Appartient à superuser.com? –

+2

Vous auriez probablement une meilleure réponse sur superuser.com, mais j'essaierais 'exec login -f root' où vous avez actuellement'/bin/bash -i'. Je * pense * qui configure correctement le terminal. – zwol

Répondre

4

Cela dépend exactement quel système d'exploitation vous exécutez. Voici un exemple qui fonctionne sur RHEL/CentOS.

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

Voici ce que quelqu'un d'autre a fait pour un tour similaire.

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