Lorsqu’on met à jour une Ubuntu vers Feisty Fawn, les terminaux habituellement accessibles avec les combinaisons de touches control-alt-f1 à control-alt-f6 sont désactivés. Comment faire pour les avoir à nouveau?
Depuis la version 7.04 (Feisty Fawn), la gestion des programmes lancés au démarrage n’est plus faite par l’historique sysvinit, mais par Upstart. Malheureusement, les scripts de démarrage de certains programmes ne sont pas automatiquement convertis (car ça s’avère impossible).
Avec upstart, il correspond à chaque tâche à gérer un fichier de configuration dans le répertoire « /etc/event.d ». Pour chaque terminal à lancer, il existe un fichier « ttyX » (par exemple « /etc/event.d/tty4 » pour le 4ième terminal). Lors de ma mise à jour, le format des fichiers « ttyX » n’était pas bon. J’ai dû modifier chacun de la manière suivante:
# tty1 - getty # # This service maintains a getty on tty1 from the point the system is # started until it is shut down again. start on runlevel 2 start on runlevel 3 start on runlevel 4 start on runlevel 5 stop on runlevel 0 stop on runlevel 1 stop on runlevel 6
respawn exec /sbin/getty 38400 tty1
Les premières lignes indiquent à quel runlevel le terminal doit être lancé. Dans notre cas, c’est surtout au runlevel 5 qu’il faudra que le terminal soit activé.
La dernière ligne, qui indique la commande à lancer (elle doit être précédée par « exec » si la commande tient sur une seule ligne, ce qui est notre cas), était mal formée. Elle devait ressembler (pas bon!) à:
/sbin/getty 38400 tty2exec /sbin/getty 38400 tty2
Vous remarquez que ça cloche. D’après ce que je comprends, comme elle ne commence pas par un mot clef reconnu par upstart, celui-ci ignore le script. Une fois la syntaxe corrigée, on peut voir que les tâches sont disponibles:
toto@mamachine:/$ sudo initctl list control-alt-delete (stop) waiting logd (stop) waiting (bla bla bla...) tty6 (stop) waiting
Il ne reste plus qu’à démarrer chaque terminal, histoire de ne pas attendre le reboot:
toto@mamachine:/$ sudo initctl start tty1