====== systemd ====== * [[http://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-153/Systemd-vainqueur-de-Upstart-et-des-scripts-System-V|LinuxMag]] * [[https://doc.ubuntu-fr.org/creer_un_service_avec_systemd|Créer un service systemd]] * Recharge / redémarre systemd : $ systemctl daemon-reload $ systemctl daemon-reexec * Affiche la liste des dépendances d'une unité : $ systemctl list-dependencies nfs-client.target nfs-client.target ● ├─auth-rpcgss-module.service ● ├─rpc-statd-notify.service ● └─remote-fs-pre.target * Afficher une propriété d'un service : $ systemctl show -p "Wants" nfs.service Wants=rpcbind.socket network-online.target auth-rpcgss-module.service rpc-statd-notify.service nfs-config.service rpc-statd.service nfs-idmapd.service * Liste l'arbre des cgroups : $ systemd-cgls * Affiche les uités : $ systemctl list-unit-files --type=mount UNIT FILE STATE -.mount generated boot-efi.mount generated dev-hugepages.mount static dev-mqueue.mount static home.mount generated proc-fs-nfsd.mount static proc-sys-fs-binfmt_misc.mount static sys-fs-fuse-connections.mount static sys-kernel-config.mount static sys-kernel-debug.mount static tmp.mount static var-lib-machines.mount static var-lib-nfs-rpc_pipefs.mount static 13 unit files listed. $ systemctl list-unit-files --state=generated UNIT FILE STATE -.mount generated boot-efi.mount generated home.mount generated livesys-late.service generated livesys.service generated netconsole.service generated network.service generated 7 unit files listed. * Modifie un service existant ou en crée un nouveau : $ sudo systemctl edit crond.service $ $ #Liste edite le service et recopiant le père $ sudo systemctl edit crond.service -l $ sudo systemctl edit crond.service -full * Date pour timer : Minimal form Normalized form Sat,Thu,Mon-Wed,Sat-Sun ==> Mon-Thu,Sat,Sun *-*-* 00:00:00 Mon,Sun 12-*-* 2,1:23 ==> Mon,Sun 2012-*-* 01,02:23:00 Wed *-1 ==> Wed *-*-01 00:00:00 Wed-Wed,Wed *-1 ==> Wed *-*-01 00:00:00 Wed, 17:48 ==> Wed *-*-* 17:48:00 Wed-Sat,Tue 12-10-15 1:2:3 ==> Tue-Sat 2012-10-15 01:02:03 *-*-7 0:0:0 ==> *-*-07 00:00:00 10-15 ==> *-10-15 00:00:00 monday *-12-* 17:00 ==> Mon *-12-* 17:00:00 Mon,Fri *-*-3,1,2 *:30:45 ==> Mon,Fri *-*-01,02,03 *:30:45 12,14,13,12:20,10,30 ==> *-*-* 12,13,14:10,20,30:00 mon,fri *-1/2-1,3 *:30:45 ==> Mon,Fri *-01/2-01,03 *:30:45 03-05 08:05:40 ==> *-03-05 08:05:40 08:05:40 ==> *-*-* 08:05:40 05:40 ==> *-*-* 05:40:00 Sat,Sun 12-05 08:05:40 ==> Sat,Sun *-12-05 08:05:40 Sat,Sun 08:05:40 ==> Sat,Sun *-*-* 08:05:40 2003-03-05 05:40 ==> 2003-03-05 05:40:00 2003-03-05 ==> 2003-03-05 00:00:00 03-05 ==> *-03-05 00:00:00 hourly ==> *-*-* *:00:00 daily ==> *-*-* 00:00:00 monthly ==> *-*-01 00:00:00 weekly ==> Mon *-*-* 00:00:00 *:20/15 ==> *-*-* *:20/15:00 Some other options like **OnCalendar** are available : * **OnActiveSec** defines a timer relative to the moment the timer itself is activated. * **OnBootSec** defines a timer relative to when the machine was booted up. * **OnStartupSec** defines a timer relative to when systemd was started. * **OnUnitActiveSec** defines a timer relative to when the unit the timer is activating was last activated. * **OnUnitInactiveSec** defines a timer relative to when the unit the timer is activating was last deactivated. Exemple : [Unit] Description=Execute backup every day at midnight [Timer] OnCalendar=*-*-* 00:00:00 Unit=backup.service [Install] WantedBy=multi-user.target * 2 moyens d'activer les processus persistants (qui continue après la fermeture de session) : * **loginctl enable-linger [user]** : Active les processus persistant pour le user donné (si pas de user alors user courant). L'utilisateur peut alors utiliser la commande **systemd-run** pour lancer un process persistant, par exemple :**//systemd-run --scope --user /usr/bin/screen//** * Dans le fichier ''/etc/systemd/logind.conf'', définissez **KillUserProcesses=no** pour activer les processus persistant sur tout le système