Systemd Complement

Intro

évolutions-techniques-de-systemd
http://ktaraghi.blogspot.fr/2013/11/what-is-systemd-and-how-it-works-part-1.html
http://0pointer.de/blog/projects/systemd-for-admins-3.html
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

Commande de base

exemple sur le firewall redhate 7
systemctl status firewalld
systemctl stop firewalld
systemctl start firewalld
systemctl enable firewalld
systemctl diseable firewalld

Logue
journalctl

Conf

/etc/systemd/system/multi-user.target.wants/dhcpd.service
[Unit]
Description=DHCPv4 Server Daemon
Documentation=man:dhcpd(8) man:dhcpd.conf(5)
#After=network.target cette directive permet de libéré les connexions proprement
#Permet d'attendre l'atribution des ip
After=network-online.target NetworkManager-online.target time-sync.target
Requires=network-online.target NetworkManager-online.target time-sync.target

[Service]
Type=notify
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid

[Install]
WantedBy=multi-user.target

Dans le fichier : /usr/lib/systemd/system/cas-tomcat.service
[Unit]
Description=Tomcat8 pour le cas
After=network.target

[Service]
Type=forking
User=cas
Group=cas

Environment=CATALINA_PID=/home/cas/tomcat/tomcat8.pid
Environment=TOMCAT_JAVA_HOME=/usr/java/latest
Environment=CATALINA_HOME=/home/cas/tomcat/
Environment=CATALINA_BASE=/home/cas/tomcat/
Environment=CATALINA_OPTS=
Environment="JAVA_OPTS=-Dfile.encoding=UTF-8 -Dnet.sf.ehcache.skipUpdateCheck=true -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:MaxPermSize=128m -Xms128m -Xmx512m"

ExecStart=/home/cas/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target

http://www.fasterj.com/articles/oraclecollectors1.shtml
UseConcMarkSweepGC : gc avec un mini d'interruption possible
CMSClassUnloadingEnabled : unload classes (no the default) for groovy (a utiliser avec UseConcMarkSweepGC)
UseParNewGC : algo parrallele poru la nouvelle generation
MaxPermSize : memeoire permanente pour les classes
Xms128m : taille min du tas (memoire utilisble pour les vars du programme)
Xmx512m : taille max du tas

Target

Target reseau

ref
network.target : a utiliser pour le shutdown que les service utilisans des conenction les coupes avant coupure reseau
network-online.target : permet d'attendre que les ip sois la
network-pre.target : avant que ls ip sois la pour le firewall
!!Attention les target doivent etre activé!!

Determiner sons environement

service NetworkManager status-> si sa repond c'est que votre lan est géré par NetworkManager
sinon voir systemd-networkd

Enable target

Pour les systeme sous NetworkManager
systemctl enable NetworkManager-wait-online.service

Ceux sous systemd-networkd
systemctl enable systemd-networkd-wait-online.service

Analyse

Pour la commande dot
yum install graphviz

Pour analyser les tps de demarrages
systemd-analyze blame
systemd-analyze plot > plot.svg

Pour analyser l'ordre
systemd-analyze dot |grep dhcp
systemd-analyze dot | dot -Tsvg > systemd.svg
systemd-analyze dot --from-pattern=dhcp* |dot -Tsvg dhcp.svg
Le 1er sort en text la liste des dépendences, on les filtres par grep
Toute les dependence sous convertie par dot en svg
Dependence des process ayant la patyerne dhcp* en svg