Cela peut sembler une contradiction en termes, mais j'ai récemment dû utiliser le mode mono-utilisateur (aka mode maintenance) pendant un certain temps (jours!) Tout en essayant de reconstruire une matrice RAID cassée.
En faisant cela, je me suis retrouvé à vouloir utiliser un deuxième shell pour des choses telles que la vérification / modification des paramètres dans divers fichiers de configuration ou la recherche dans les journaux système tandis que la console principale (et uniquement) est bloquée lors de l'exécution d'un processus de récupération.
Quelle serait la commande recommandée pour lancer un deuxième shell sur un autre tty?
Évidemment, une méthode pourrait être d'utiliser screen
dans tty1, mais cela n'a pas tout à fait la facilité de simplement changer de session avec Alt-F1, Alt-F2, etc.
screen
est aussi simple que ça. Ctrl AP ne semble pas beaucoup plus compliqué que Alt F1 ...screen
ettmux
pour la gestion des fenêtres TUI ne font pas toujours l'affaire. Parfois, vous avez besoin d'unttyX
appareil réel plutôt que d'unpts
.Réponses:
Il y a une commande spécialement conçu pour cette situation:
openvt
. Exécutez simplementopenvt
votre shell sur tty1 et vous trouverez un shell en cours d'exécution sur le premier tty qui n'avait pas déjà quelque chose dessus (tty2 probablement.) Il y a plusieurs options que vous pourriez trouver utiles; voir la page de manuel openvt.Comme il ne s'agit pas d'une connexion gérée par getty, lorsque vous quittez le nouveau shell, vous ne verrez pas d'invite de connexion. Le tty disparaîtra simplement car aucun processus ne sera exécuté, mais vous pourrez toujours basculer (Alt-F1 Alt-F2) et voir ce qui était à l'écran lorsque vous avez quitté le shell. La
deallocvt
commande détruit les ttys qui sont dans cet état de zombie, revenant à l'état d'origine "Alt-F2 ne fait rien".À l'origine, ces commandes étaient appelées
open
etdisalloc
, mais finalement quelqu'un a décidé de les changer parce qu'elles étaient trop génériques et que la désallocation était jugée "pas un mot".Dans le passé, il était courant que le pilote du clavier et init soient configurés pour que Alt + Up s'exécute
open
, de sorte qu'il agisse comme un raccourci clavier pour générer un shell sur une nouvelle console. Vous pouvez toujours trouver un reste de cette ancienne configuration, commentée, dans votre/etc/inittab
. (Si vous n'utilisez pas un nouvel init de fantaisie qui n'en a pasinittab
.)Il y a une question similaire ici
la source
openvt
. +1.openvt
avéré très utile. Merci d'avoir apporté une nouvelle commande à ma connaissance.Vous pouvez en générer un autre
getty
pour celui que vous voulez. Démarrez en mode mono-utilisateur, puis démarrez ungetty
sur tty2:Vous pouvez maintenant Alt+ F2passer au nouveau terminal. Répétez l'opération pour des ttys supplémentaires si nécessaire. Vous pourriez probablement faire quelque chose de plus propre et simplement configurer
/etc/inittab
pour gérer automatiquement cela en mode mono-utilisateur.la source
init
, elle n'est pas régénérée si elle meurt./etc/inittab
et/etc/rc1.d/S??single
à tout le moins.Vous pouvez probablement vous passer d'une instance de shell supplémentaire en l'utilisant
JOB CONTROL
dans votre shell actuel. Il est documenté dans la page de manuel debash(1)
.Vous pouvez simplement suspendre une tâche en utilisant la séquence Ctrl+ Zpar défaut, bien qu'elle puisse être configurée dans votre terminal d'une manière différente, vérifiez la sortie de
stty -a
:Vous pouvez vérifier vos emplois en émettant
jobs
:Mettez l'un d'eux au premier plan:
Ou reprenez-le en arrière-plan:
Cette méthode ne présente pas de nombreux avantages de
screen
outmux
, mais peut être également utile dans certaines situations.la source
ddrescue
je ne veux pas continuer à l'interrompre et à le reprendre même s'il est configuré pour le faire ..csh
,tcsh
ouzsh
, par exemple), donc mentionner son manpage serait inexact dans ce cas. Pour un autre, cela ne répond pas à la question posée.Pensez à utiliser des multiplexeurs de terminaux tels que tmux ou screen.
En savoir plus sur tmux ici: https://github.com/tmux/tmux/wiki
la source
screen
et senti que les autres multiplexeurs étaient encore plus exagérés. Tout ce dont j'ai besoin, c'est d'une simple deuxième console.screen
dans votre question. Il était tard.