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 19:55] enicar [Installation] |
||
---|---|---|---|
Ligne 18: | Ligne 18: | ||
<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 36: | ||
<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 65: | ||
... | ... | ||
</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 #systemd va retarder l'exécution du service jusqu'à ce que tous les autres soient finis | ||
+ | ExecStart=/bin/bash /etc/show_my_ip.sh #la ligne de commande à éxécuter | ||
+ | StandardOutput=tty #spécifier ou va la sortie "standard du script" ou peut l'afficher dans les log, un tty ou pas l'afficher du tout | ||
+ | TTYPath=/dev/tty1 #je précise sur quel tty je veux qu'il s'affiche | ||
+ | RestartSec=10 # si mon script est killer systemd le relancera automatiquement toutes les 10ms | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target # c'est un script que l'usager demande #obligatoire | ||
+ | </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]] |