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 →
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:bash:script:systemd:script-sur-un-vt [25/01/2016 15:04] greenmerlin créée |
doc:programmation:bash:script:systemd:script-sur-un-vt [25/01/2016 20:38] greenmerlin [Script de démarrage pour systemd] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : Depuis le passage de INIT à SystemD certaines choses simple sont devenue plus complexe / comment j'en suis arrivé là : j'ai voulu afficher sur le tty1 de mes machines virtuels leur adresse ipv4 au lien de l'écran de login habituel | * Commentaires : Depuis le passage de INIT à SystemD certaines choses simple sont devenue plus complexe / comment j'en suis arrivé là : j'ai voulu afficher sur le tty1 de mes machines virtuels leur adresse ipv4 au lien de l'écran de login habituel | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) FIXME | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) FIXME | ||
- | * Suivi : {{tag>en-chantier à-tester à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. | + | * Suivi : {{tag>en-chantier à-tester https://debian-facile.org/viewtopic.php?pid=159703#p159703à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. |
* Création par [[user>greenmerlin]] 25/01/2016 | * Création par [[user>greenmerlin]] 25/01/2016 | ||
+ | * Commentaires sur le forum : [[ https://debian-facile.org/viewtopic.php?pid=159703#p159703| Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
FIXME | FIXME | ||
== Nb : je suis une quiche en mise ne page c'est illisible mdr == | == Nb : je suis une quiche en mise ne page c'est illisible mdr == | ||
Ligne 18: | Ligne 19: | ||
<note warning>Vu qu'on bosse sur le Systemd je vous déconseille de bosser en SSH (vous verrez pas les changement lol)</note> | <note warning>Vu qu'on bosse sur le Systemd je vous déconseille de bosser en SSH (vous verrez pas les changement lol)</note> | ||
- | ===== Installation ===== | + | ===== Le script a exécuté ===== |
Bon on commence par le plus simple : | Bon on commence par le plus simple : | ||
Pour plus de commodité j'enregistre toujours mes scripts perso dans /etc/bin, donc la je le créer dans /etc/bin/show_my_ip.sh | Pour plus de commodité j'enregistre toujours mes scripts perso dans /etc/bin, donc la je le créer dans /etc/bin/show_my_ip.sh | ||
- | === Le script a exécuté === | ||
<file bash show_my_ip.sh> | <file bash show_my_ip.sh> | ||
#bin/sh | #bin/sh | ||
Ligne 37: | Ligne 37: | ||
<note important>ne pas oublier de le rendre éxécutable --> chmod +x mon_script.sh</note> | <note important>ne pas oublier de le rendre éxécutable --> chmod +x mon_script.sh</note> | ||
ensuite vu que je veux afficher ce script sur mon tty1 il va falloir que je dise à SystemD d’arrêter de lancer agetty FIXME(expliquer) sur le tty1 | ensuite vu que je veux afficher ce script sur mon tty1 il va falloir que je dise à SystemD d’arrêter de lancer agetty FIXME(expliquer) sur le tty1 | ||
- | + | ===== Configuration de SystemD ===== | |
- | == Avant == | + | === Avant === |
sur **INIT** il suffisait d'éditer l'inittab et de remplacer | sur **INIT** il suffisait d'éditer l'inittab et de remplacer | ||
<code>1:2345:respawn:/sbin/mingetty tty1</code> | <code>1:2345:respawn:/sbin/mingetty tty1</code> | ||
par | par | ||
<code>1:2345:respawn:/etc/bin/mon_script.sh</code> | <code>1:2345:respawn:/etc/bin/mon_script.sh</code> | ||
- | == Maintenant == | + | === Maintenant === |
- | Maintenant avec SystemD, un seul getty est lancer par défault. Si vous vous déplacer dur un autre tty(Ctr+Alt+F2 par example), getty sera lancer ici(de manière interactive). | + | Maintenant avec SystemD, un seul getty est lancer par défault. Si vous vous déplacer sur un autre tty(Ctr+Alt+F2 par example), getty sera lancer ici(de manière interactive). |
pour modifier ce comportement par défault de **SystemD** il faut éditer le fichier <code>/etc/systemd/logind.conf</code> | pour modifier ce comportement par défault de **SystemD** il faut éditer le fichier <code>/etc/systemd/logind.conf</code> | ||
Ligne 66: | Ligne 66: | ||
... | ... | ||
</file> | </file> | ||
- | ensuite on lui dit de démarrer quand même un login sur le tty2 pour ce faire : | + | Ensuite on lui dit de démarrer quand même un login sur le tty2 pour ce faire : |
- | <code=root>systemctl disable getty@tty1.service;systemctl enable getty@tty2.service</code> | + | <code root>systemctl disable getty@tty1.service</code> |
- | Dernière phase, il va falloir | + | Puis : |
- | ===== Utilisation ===== | + | <code root> systemctl enable getty@tty2.service</code> |
+ | ===== Script de démarrage pour systemd ===== | ||
+ | Il va falloir créer un script de démarrage pour SystemD afin de lancer notre script sur le tty1 | ||
+ | <note tip>cela correspondait aux scripts présent sous /etc/init.d/ sous INIT</note> | ||
+ | <file config /etc/systemd/system/show_my_ip.service> | ||
+ | [Unit] | ||
+ | Description=Afficher mon ip avec systemd | ||
+ | |||
+ | [Service] | ||
+ | type=idle | ||
+ | ExecStart=/bin/bash /etc/show_my_ip.sh | ||
+ | StandardOutput=tty | ||
+ | TTYPath=/dev/tty1 | ||
+ | RestartSec=10 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </file> | ||
+ | En détails : | ||
+ | <code>Description=Afficher mon ip avec systemd</code> #description de l'unit qu'est-ce que ça fait,etc... | ||
+ | <code>type=idle</code> #systemd va retarder l'exécution du service jusqu'à ce que tous les autres soient finis | ||
+ | <code>ExecStart=/bin/bash /etc/show_my_ip.sh</code> #la ligne de commande à éxécuter | ||
+ | <code>StandardOutput=tty</code> #spécifier ou va la sortie "standard du script" ou peut l'afficher dans les log, un tty ou pas l'afficher du tout | ||
+ | <code>TTYPath=/dev/tty1</code> #je précise sur quel tty je veux qu'il s'affiche | ||
+ | <code>RestartSec=10</code> #si mon script est killer, SystemD le relancera automatiquement toutes les 10ms | ||
+ | <code>WantedBy=multi-user.target</code> # c'est un script que l'usager demande **obligatoire** | ||
+ | |||
+ | Dernière phase : | ||
+ | je modifie les droits de mon script SystemD puis je l'active au démarrage | ||
+ | <code root>chmod 755 /etc/systemd/system/show_my_ip.service;systemctl enable show_my_ip</code> | ||
+ | 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 | ||
+ | ===== Résultat ===== | ||
+ | |||
+ | [[http://pix.toile-libre.org/?img=1453733608.png]] |