systemctl: il tool di base per gestire SystemD

Inauguriamo con systemctl un ciclo di articoli tecnici su SystemD.

systemctl é il tool con cui gestiamo gran parte degli aspetti di SystemD e va a sostituire gran parte delle funzioni dei comandi service e chkconfig. Vedremo qui come analizzare lo stato del sistema, gestire lo stato della macchina e – aspetto forse piú importante – gestire le units.

TIP aggiungendo -H user@host possiamo eseguire il comando su una macchina remota via ssh.

2014-02-25-101546_1053x347_scrot

Analizzare lo stato del sistema

Se volevamo vedere lo stato dei servizi attivi sulla macchina con avremmo usato il comando:

service --status-all

Con systemctl invece possiamo dare il comando senza alcun parametro, oppure per visualizzare solo i servizi che hanno dato errore diamo il comando con il parametro –failed.

systemctl
# gdm.service                                                              loaded active running   GNOME Display Manager
# gpm.service                                                              loaded active running   Console Mouse manager
# irqbalance.service                                                       loaded active running   irqbalance daemon
 
systemctl --failed
# UNIT           LOAD   ACTIVE SUB    DESCRIPTION
# mcelog.service loaded failed failed Machine Check Exception Logging Daemon
# rngd.service   loaded failed failed Hardware RNG Entropy Gatherer Daemon
#
# LOAD   = Reflects whether the unit definition was properly loaded.
# ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
# SUB    = The low-level unit activation state, values depend on unit type.
# 
# 2 loaded units listed. Pass --all to see loaded but inactive units, too.
# To show all installed unit files use 'systemctl list-unit-files'.

Dalle estensioni del nome, vedrete che ci saranno diversi tipi di units: .automount, .mount, .device, .service etc etc. Vedremo piú avanti di cosa esattamente si tratta, vi basti sapere che i daemon sono quelli con estensione .service.

Gestione dei servizi

Vediamo ora come sostituire i vecchi comandi

service myservice [start|stop|restart|status]
chkconfig myservice [on|off]

Abbiamo detto che i servizi hanno estensione .service, quindi myservice verrá ora chiamato myservice.service.

Iniziamo con l’abilitare il servizio:

systemctl enable httpd.service
# ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

Adesso il servizio Apache verrá avviato all’avvio. Allo stesso modo usiamo il comando disable per disabilitarlo.

Ora vedremo come studiarne lo stato, avviare e fermare il servizio.

systemctl status httpd.service
# httpd.service - The Apache HTTP Server
#    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
#    Active: inactive (dead)
systemctl start httpd.service
systemctl status httpd.service
# httpd.service - The Apache HTTP Server
#    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
#    Active: active (running) since Tue 2014-02-25 08:39:56 CET; 16s ago
#  Main PID: 18285 (httpd)
#    Status: "Total requests: 0; Current requests/sec: 0; Current # traffic:   0 B/sec"
#    CGroup: /system.slice/httpd.service
#            ├─18285 /usr/sbin/httpd -DFOREGROUND
#            ├─18286 /usr/sbin/httpd -DFOREGROUND
#            ├─18287 /usr/sbin/httpd -DFOREGROUND
#            ├─18288 /usr/sbin/httpd -DFOREGROUND
#            ├─18289 /usr/sbin/httpd -DFOREGROUND
#            └─18290 /usr/sbin/httpd -DFOREGROUND
# 
# Feb 25 08:39:56 alorenzi-vaio.local systemd[1]: Started The Apache HTTP Server.
systemctl stop httpd.service

Notate quanti dettagli restituisce systemctl service quando il servizio é attivato: non solo mostra se il servizio é acceso o spento, ma anche il PID, il cgroup, e anche le ultime righe di log del servizio.

Gestione energetica

Possiamo anche utilizzare systemd per riavviare, spegnere, sospendere e ibernare la macchina, rispettivamente:

systemctl reboot
systemctl poweroff
systemctl suspend
systemctl hibernate

Se utilizziamo il tool polkit anche gli utenti saranno in grado di utilizzare il power management di systemctl senza dover inserire alcuna password e senza configurare sudo. Su Fedora gli utenti amministratori sono giá configurati per poter utilizzare queste funzioni.

Ti piacerebbe diventare anche tu uno di noi e pubblicare i tuoi articoli nel blog degli RHCE italiani?

Panoramica privacy
EXTRAORDY | Your Red Hat Trusted Mentor

Questo sito utilizza i cookie in modo da offrirti la migliore esperienza utente possibile. Le informazioni sui cookie sono memorizzate nel tuo browser e svolgono funzioni come riconoscerti quando ritorni sul nostro sito e aiutare il nostro team a capire quali sezioni del sito ritieni più interessanti e utili.

Pertanto per una completa fruizione del presente sito, si consiglia di configurare il browser in modo che accetti la ricezione dei cookie.

Cookie strettamente necessari

I cookie strettamente necessari dovrebbero essere abilitati in ogni momento in modo che possiamo salvare le tue preferenze per offrirti la miglior esperienza possibile sul nostro sito.

 

Se disabiliti questo cookie, non saremo in grado di salvare le tue preferenze. Ciò significa che ogni volta che visiti questo sito web dovrai abilitare o disabilitare nuovamente i cookie.

Cookie di terze parti

Questo sito utilizza Google Analytics per raccogliere informazioni anonime quali il numero di visitatori del sito e le pagine più popolari.

Mantenere abilitato questo cookie ci aiuta a migliorare il nostro sito.