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 [25/01/2016 20:54]
milou [Comment lancer un script sur une console virtuelle en utilisant systemd]
doc:programmation:bash:script:systemd:script-sur-un-vt [01/10/2023 11:15] (Version actuelle)
captnfab [Lancer un script sur une console virtuelle - systemd]
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}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:​atelier:#​tags|l'​Atelier]].+  * Suivi : {{tag>​à-tester}}
     * 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 !)) +    * 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 !))
-FIXME +
-== Nb : je suis une quiche en mise ne page c'est illisible mdr == +
 ===== 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 18: Ligne 15:
 <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 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
Ligne 32: Ligne 30:
 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 éxécutable ​: <code user>chmod +x mon_script.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 43: Ligne 43:
 <​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 lanceé 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 éditer le fichier <​code>/​etc/​systemd/​logind.conf</​code>​
Ligne 70: Ligne 70:
 <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 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>​
Ligne 86: Ligne 87:
 WantedBy=multi-user.target WantedBy=multi-user.target
 </​file>​ </​file>​
-En détails :  +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 à exécuter +
-<​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>​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 :  +  * description de l'unit qu'​est-ce que ça fait,etc... :<​code>​Description=Afficher mon ip avec systemd </​code>​ 
-je modifie les droits de mon script SystemD puis je l'​active au démarrage+  * 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>​  
 +  * 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>​  
 +  * je précise sur quel tty je veux qu'il s'​affiche :<​code>​TTYPath=/​dev/​tty1 </​code>​  
 +  * si mon script est killer, SystemD le relancera automatiquement toutes les 10ms :<​code>​RestartSec=10</​code>​  
 +  * c'est un script que l'​usager demande **obligatoire** :<​code>​WantedBy=multi-user.target</​code>​ 
 + 
 +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>​ <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 =====
 +{{https://​debian-facile.org/​images/​file-Reda0b8260517f425575ddbdefef3ed2f.png}}
 +
 +{{https://​debian-facile.org/​images/​file-R635089f471126a55c82d38bc4b42e173.png?​600}}
  
-[[http://​pix.toile-libre.org/?​img=1453733608.png]] 
doc/programmation/bash/script/systemd/script-sur-un-vt.1453751671.txt.gz · Dernière modification: 25/01/2016 20:54 par milou

Pied de page des forums

Propulsé par FluxBB