Différences entre les versions de « Systemctl »
De BlaxWiki
Aller à la navigationAller à la recherche (Page créée avec « Quelques tips pour systemctl : <pre> On peut voir dans journalctl que systemd exécute l’ExecStart puis tout de suite après l’ExecStop. Donc il interprète la fin de... ») |
|||
| Ligne 2 : | Ligne 2 : | ||
<pre> | <pre> | ||
On peut voir dans journalctl que systemd exécute l’ExecStart puis tout de suite après l’ExecStop. | On peut voir dans journalctl que systemd exécute l’ExecStart puis tout de suite après l’ExecStop. Donc il interprète la fin de l’exécution de leur script d’init comme un crash du service et le stop/start en | ||
Donc il interprète la fin de l’exécution de leur script d’init comme un crash du service et le stop/start en boucle. | boucle. | ||
Le service est en type forking donc le service doit être considéré comme démarré tant que les process enfants sont là. | Le service est en type forking donc le service doit être considéré comme démarré tant que les process enfants sont là. Dans le cas présent le script d’init va lancer un apachectl qui aura des process | ||
Dans le cas présent le script d’init va lancer un apachectl qui aura des process enfants httpd. | enfants httpd. Le fait que les process restants soient des « petits-enfants » et pas des enfants lui pose peut-être problème. | ||
Le fait que les process restants soient des « petits-enfants » et pas des enfants lui pose peut-être problème. | |||
J’ai ajouté « RemainAfterExit=yes » dans le fichier service pour lui dire que c’est normal que le process s’arrête, pas besoin d’exécuter ExecStop. | J’ai ajouté « RemainAfterExit=yes » dans le fichier service pour lui dire que c’est normal que le process s’arrête, pas besoin d’exécuter ExecStop. | ||
Si tu veux être sûr que le réseau est up quand le service démarre il faut utiliser network-online.target : | Si tu veux être sûr que le réseau est up quand le service démarre il faut utiliser network-online.target : | ||
| Ligne 25 : | Ligne 17 : | ||
La conf réseau est faite via sysconfig, qui est démarrée par /etc/init.d/network, qui démarre NetworkManager-wait-online.service quand il est up. | La conf réseau est faite via sysconfig, qui est démarrée par /etc/init.d/network, qui démarre NetworkManager-wait-online.service quand il est up. | ||
systemctl enable NetworkManager-wait-online.service | systemctl enable NetworkManager-wait-online.service | ||
</pre> | </pre> | ||
[[Catégorie:Linux]] | [[Catégorie:Linux]] | ||
Version actuelle datée du 10 juillet 2020 à 10:11
Quelques tips pour systemctl :
On peut voir dans journalctl que systemd exécute l’ExecStart puis tout de suite après l’ExecStop. Donc il interprète la fin de l’exécution de leur script d’init comme un crash du service et le stop/start en boucle. Le service est en type forking donc le service doit être considéré comme démarré tant que les process enfants sont là. Dans le cas présent le script d’init va lancer un apachectl qui aura des process enfants httpd. Le fait que les process restants soient des « petits-enfants » et pas des enfants lui pose peut-être problème. J’ai ajouté « RemainAfterExit=yes » dans le fichier service pour lui dire que c’est normal que le process s’arrête, pas besoin d’exécuter ExecStop. Si tu veux être sûr que le réseau est up quand le service démarre il faut utiliser network-online.target : [Unit] After=network.target network-online.target Wants=network-online.target La conf réseau est faite via sysconfig, qui est démarrée par /etc/init.d/network, qui démarre NetworkManager-wait-online.service quand il est up. systemctl enable NetworkManager-wait-online.service