Systemd

 Systemd è il gestore di ogni oggetto dopo l'avvio del kernel.

Gli oggetti gestiti si chiamano unit e possono essere divisi in servizi, mounts o timers.

L'interfaccia usata per gestire systemd è SYSTEMCTL.

Per visualizzare i tipi di unit:

# systemctl -t help
Available unit types:
service
socket
busname
target
snapshot
device
mount
automount
swap
timer
path
slice
scope

Lista dei unit file
# systemctl list-unit-files
UNIT FILE                                                       STATE
proc-sys-fs-binfmt_misc.automount                static
dev-hugepages.mount                                      static
dev-mqueue.mount                                          static
proc-sys-fs-binfmt_misc.mount                       static
run-vmblock\x2dfuse.mount                            disabled
sys-fs-fuse-connections.mount                         static
................

Lista di tutti i service unit file, se abilitati o no:
 # systemctl list-unit-files -at service

La lista di tute le unit che sono running sul server:
# systemctl list-units
UNIT                                                LOAD   ACTIVE SUB       DESCRIPTION
boot.mount                                          loaded active mounted   /boot
dev-hugepages.mount                                 loaded active mounted   Huge Pages File System
dev-mqueue.mount                                    loaded active mounted   POSIX Message Queue File System
proc-sys-fs-binfmt_misc.mount                       loaded active mounted   Arbitrary Executable File Formats File System
run-user-0.mount                                    loaded active mounted   /run/user/0

Un System Administrator deve sapere gestire lo stato dei moduli:
enabled/disabled dice se il module deve essere avviato automaticamente al boot del server
start/stop per indicare lo stato runtime di un servizio.

# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Questo comando dice che il file di configurazione è 
"/usr/lib/systemd/system/vsftpd.service" ed è disabilitato (disabled) e quindi non automaticamente avviato. Inoltre che il pacchetto di default  è disabilitato dopo l'installazione "vendor preset: disabled".
Attualmente è inattivo "Active: inactive (dead)"

Avviamo il servizio e poi verifichiamo lo stato.
# systemctl start vsftpd
# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-09-16 18:10:26 CEST; 3s ago
  Process: 31905 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 31906 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─31906 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Sep 16 18:10:26 coslab02.intra.camera.it systemd[1]: Starting Vsftpd ftp daemon...
Sep 16 18:10:26 coslab02.intra.camera.it systemd[1]: Started Vsftpd ftp daemon.

# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

Sotto /etc/... viene creato un symbolic link verso /usr/lib...

# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-09-16 18:10:26 CEST; 3min 50s ago
 Main PID: 31906 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─31906 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

-------------------------------
CONFIGURAZIONE
--------------------------------
Gli unit file di sistema sono cofigurati sotto /usr/lib/systemd/system.
Non modficiarli direttamente ma effettuare una copia sono /etc/systemd/system e modificarli qui perchè si sovrappongono a quelli originali.
Il modo migliore per modificarli è usare il comando
# systemctl edit <unit.servive>
Per visualizzare tutti i parametri disponibili:
# systmectl show  <unit.servive>
Dopo le modifiche riavvviare i servizi
# systemctl daemon-reload  

Ad esempio configurare il serivzio httpd che effettui il restart in automatico dopo 5s.
1) systemctl edit httpd.service

Inserire il segunete codice:

[Service]
Restart=always
RestartSec=5s

Selezionare sulla tastiera "Ctrl+X", poi "y" per confermare la modifica ed infine il tasto invio per uscire dalla modalità edit.

Viene creato il file /etc/systemd/system/httpd.service.d/override.conf

2)  systemctl daemon-reload
3) systemctl show httpd.service

Verifica:
Killare i serivizi
# killall httpd
# ps aux | grep httpd
Verificare che il servizio è restarto in automatico:
# systemctl status httpd.service







Post popolari in questo blog

Create e Drop Pluggable Database

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione