Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Depuis le changement d'INIT à SystemD beaucoup d'entre nous ont dû réapprendre… des choses simples que faisait /etc/inittab à la sauce SystemD.
Afficher sur le tty1 le résultat d'un script bash, dans mon exemple ce script affichera l'adresse ipv4 de la machine au lieu de l'écran de login habituel et n'affichera qu'un écran de login sur le TTY2 seulement
Bon on commence par le plus simple : Je crée le script dans /usr/local/bin/show_my_ip.sh
#!/bin/sh clear while true; do echo -e "\nBonjour et bienvenue sur $HOSTNAME\n\nMon adresse ip est la suivante : \n" ip addr |grep --color=always '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' sleep 10 clear done
Je ne commente pas le script car c'est pas le but du tuto(si vous voulez plus d'explication –> MP).
Ce script Bash va afficher en continue l'adresse ipv4 des différentes interfaces réseau.
chmod +x /usr/local/bin/show_my_ip.sh
Ensuite, vu que je veux afficher ce script sur mon tty1 il va falloir que je dise à SystemD d’arrêter de lancer agetty (expliquer) sur le tty1.
sur INIT il suffisait d'éditer l'inittab et de remplacer
1:2345:respawn:/sbin/mingetty tty1
par
1:2345:respawn:/etc/bin/mon_script.sh
Maintenant avec SystemD, un seul getty est lancé par défaut. Si vous vous déplacez sur un autre tty(Ctrl+Alt+F2 par exemple), getty sera lancé ici (de manière interactive).
Pour modifier ce comportement par défaut de SystemD il faut désactiver le service qui exécute getty sur tty1
systemctl disable getty@tty1.service
Ensuite on lui dit de démarrer quand même un login sur le tty2, pour ce faire :
systemctl enable getty@tty2.service
Il va falloir créer un script de démarrage pour SystemD (/etc/systemd/system/show_my_ip.service) afin de lancer notre script sur le tty1
[Unit] Description=Afficher mon ip avec systemd [Service] Type=idle ExecStart=/usr/local/bin/show_my_ip.sh StandardOutput=tty TTYPath=/dev/tty1 RestartSec=10 [Install] WantedBy=multi-user.target
En détails :
Description=Afficher mon ip avec systemd
Type=idle
ExecStart=/bin/bash /etc/show_my_ip.sh
StandardOutput=tty
TTYPath=/dev/tty1
RestartSec=10
WantedBy=multi-user.target
Dernière phase : J'active au démarrage le nouveau service show_my_ip.service :
systemctl enable show_my_ip.service
Et voilà ! un petit reboot et à la place de l’écran de login habituel sur le tty1 vous verrez l'exécution de votre script