logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:programmation:bash:script:systemd:script-sur-un-vt [05/02/2016 09:12]
smolski [Script de démarrage pour systemd]
doc:programmation:bash:script:systemd:script-sur-un-vt [11/06/2024 16:52] (Version actuelle)
agp91 [Script de démarrage pour systemd] Correction type par Type
Ligne 1: Ligne 1:
-====== ​Comment lancer ​un script sur une console virtuelle ​en utilisant ​systemd ======+====== ​Lancer ​un script sur une console virtuelle ​systemd ======
  
   * Objet : Petit Tuto expliquant comment afficher un script sur une console virtuelle   * Objet : Petit Tuto expliquant comment afficher un script sur une console virtuelle
   * Niveau requis : {{tag>​avisé}}   * Niveau requis : {{tag>​avisé}}
-  * Commentaires : Depuis le passage de INIT à SystemD certaines choses simples sont devenues plus complexes ​comment j'en suis arrivé là  : j'ai voulu afficher sur le tty1 de mes machines virtuelles leur adresse ipv4 au lieu de l'​écran de login habituel +  * Commentaires : Depuis le passage de INIT à SystemD certaines choses simples sont devenues plus complexes ​\\ comment j'en suis arrivé là  : j'ai voulu afficher sur le tty1 de mes machines virtuelles leur adresse ipv4 au lieu de l'​écran de login habituel 
-  * Suivi : {{tag>​en-chantier à-tester à-placer}}+  * Suivi :
     * 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| Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))+    ​* Testé par [[user>​agp91]] le 08/​06/​2024 
 +    ​* Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=159703| Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
 ===== Introduction =====  ===== Introduction ===== 
 Depuis le changement d'INIT à SystemD beaucoup d'​entre nous ont dû réapprendre... des choses simples que faisait /​etc/​inittab à la sauce SystemD. Depuis le changement d'INIT à SystemD beaucoup d'​entre nous ont dû réapprendre... des choses simples que faisait /​etc/​inittab à la sauce SystemD.
Ligne 15: Ligne 16:
 <note warning>​Vu qu'on bosse sur le Systemd je vous déconseille de bosser en SSH (vous verrez pas les changements lol)</​note>​ <note warning>​Vu qu'on bosse sur le Systemd je vous déconseille de bosser en SSH (vous verrez pas les changements lol)</​note>​
  
-===== Le script ​a exécuté ​=====+===== Le script ​à exécuter ​===== 
 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+Je  crée le script ​dans /usr/local/​bin/​show_my_ip.sh
 <file bash show_my_ip.sh>​ <file bash show_my_ip.sh>​
-#! /bin/sh+#!/bin/sh
 clear clear
 while true; while true;
Ligne 29: Ligne 31:
 done done
 </​file>​ </​file>​
-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 +Je ne commente pas le script car c'est pas le but du tuto(si vous voulez plus d'​explication --> MP)
-<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+Ce script Bash va afficher en continue l'​adresse ipv4 des différentes interfaces réseau. 
 +<note important>​ne pas oublier de le rendre ​exécutable : <code root>chmod +x /​usr/​local/​bin/​show_my_ip.sh</​code>​</​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.
 ===== Configuration de SystemD ===== ===== Configuration de SystemD =====
 === Avant === === Avant ===
Ligne 40: Ligne 44:
 <​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 lancé par défaut. Si vous vous déplacez sur un autre tty(Ctr+Alt+F2 par exemple), getty sera lanceé ​ici (de manière interactive).+Maintenant avec SystemD, un seul getty est lancé par défaut. Si vous vous déplacez sur un autre tty(<​key>​C-A-F2</​key> ​par exemple), getty sera lancé ​ici (de manière interactive).
  
-Pour modifier ce comportement par défaut de **SystemD** il faut éditer ​le fichier <​code>/​etc/​systemd/​logind.conf</​code>​ +Pour modifier ce comportement par défaut de **SystemD** il faut désactiver ​le service qui exécute getty sur tty1
-Puis dé-commenter NAutoVTs=6 et placer sa valeur à zéro. +
-ça devrait vous donner un fichier comme ça +
-<file config /​etc/​systemd/​logind.conf>​ +
-#  This file is part of systemd. +
-+
-#  systemd is free software; you can redistribute it and/or modify it +
-#  under the terms of the GNU Lesser General Public License as published by +
-#  the Free Software Foundation; either version 2.1 of the License, or +
-#  (at your option) any later version. +
-+
-# See logind.conf(5) for details +
- +
-[Login] +
-NAutoVTs=0 +
-#​ReserveVT=6 +
-#​KillUserProcesses=no +
-#​KillOnlyUsers= +
-... +
-</​file>​ +
-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</​code>​ <code root>​systemctl disable getty@tty1.service</​code>​
-Puis :+Ensuite on lui dit de démarrer quand même un login sur le tty2, pour ce faire 
 <code root> systemctl enable getty@tty2.service</​code>​ <code root> systemctl enable getty@tty2.service</​code>​
 ===== Script de démarrage pour systemd ===== ===== 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+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
 <note tip>cela correspondait aux scripts présents sous /​etc/​init.d/​ sous INIT</​note>​ <note tip>cela correspondait aux scripts présents sous /​etc/​init.d/​ sous INIT</​note>​
 <file config /​etc/​systemd/​system/​show_my_ip.service>​ <file config /​etc/​systemd/​system/​show_my_ip.service>​
Ligne 75: Ligne 59:
  
 [Service] [Service]
-type=idle +Type=idle 
-ExecStart=/etc/​bin/​show_my_ip.sh+ExecStart=/usr/local/​bin/​show_my_ip.sh
 StandardOutput=tty StandardOutput=tty
 TTYPath=/​dev/​tty1 TTYPath=/​dev/​tty1
Ligne 87: Ligne 71:
  
   * description de l'unit qu'​est-ce que ça fait,etc... :<​code>​Description=Afficher mon ip avec systemd </​code>​   * description de l'unit qu'​est-ce que ça fait,etc... :<​code>​Description=Afficher mon ip avec systemd </​code>​
-  * systemd va retarder l'​exécution du service jusqu'​à ce que tous les autres soient finis :<​code>​type=idle </​code> ​+  * systemd va retarder l'​exécution du service jusqu'​à ce que tous les autres soient finis :<​code>​Type=idle </​code> ​
   * la ligne de commande à exécuter :<​code>​ExecStart=/​bin/​bash /​etc/​show_my_ip.sh </​code> ​   * la ligne de commande à exécuter :<​code>​ExecStart=/​bin/​bash /​etc/​show_my_ip.sh </​code> ​
   * spécifier où va la sortie "​standard du script"​ ou peut l'​afficher dans les log, un tty, ou pas l'​afficher du tout :<​code>​ StandardOutput=tty</​code> ​   * spécifier où va la sortie "​standard du script"​ ou peut l'​afficher dans les log, un tty, ou pas l'​afficher du tout :<​code>​ StandardOutput=tty</​code> ​
Ligne 94: Ligne 78:
   * c'est un script que l'​usager demande **obligatoire** :<​code>​WantedBy=multi-user.target</​code>​   * c'est un script que l'​usager demande **obligatoire** :<​code>​WantedBy=multi-user.target</​code>​
  
-Dernière phase : \\ +Dernière phase : J'​active au démarrage ​le nouveau service show_my_ip.service ​
-je modifie les droits de mon script SystemD puis je l'​active au démarrage : +<code root>​systemctl enable show_my_ip.service</​code>​
-<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 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 ===== ===== Résultat =====
doc/programmation/bash/script/systemd/script-sur-un-vt.1454659924.txt.gz · Dernière modification: 05/02/2016 09:12 par smolski

Pied de page des forums

Propulsé par FluxBB