Systemctl è un sistema utility che è responsabile del controllo del sistema responsabile del sistema e del servizio. Systemd è una raccolta di demoni, utilità e librerie di gestione del sistema che sostituisce Inizializzazione del sistema V demone. Systemd funziona come piattaforma centrale di configurazione e gestione per sistemi simili a UNIX.
In Linux, ecosistema Systemd è stato implementato sulla maggior parte della distribuzione Linux standard con poche eccezioni. Systemd è il processo genitore di tutti gli altri demoni spesso ma non sempre.
Questo articolo vuole fare luce su “Come controllare Sistema e Servizi" su un sistema che esegue systemd.
1. Innanzitutto, controlla se sistema è installato o meno sul tuo sistema e qual è la versione di Systemd attualmente installato?
# systemctl --version sistema 215. +PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR.
È chiaro dall'esempio precedente che abbiamo systemd 215 versione installata.
2. Controlla dove si trovano i binari e le librerie di sistema e systemctl sono installati.
# dov'è il sistema systemd: /usr/lib/systemd /etc/systemd /usr/share/systemd /usr/share/man/man1/systemd.1.gz # dove è systemctl systemctl: /usr/bin/systemctl /usr/share/man/man1/systemctl.1.gz.
3. Controlla se sistema sta correndo o no.
# ps -eaf | grep [s]sistema radice 1 0 0 16:27? 00:00:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 23. radice 444 1 0 16:27? 00:00:00 /usr/lib/systemd/systemd-journald. radice 469 1 0 16:27? 00:00:00 /usr/lib/systemd/systemd-udevd. radice 555 1 0 16:27? 00:00:00 /usr/lib/systemd/systemd-logind. dbus 556 1 0 16:27? 00:00:00 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation.
Avviso: systemd è in esecuzione come demone genitore (PID=1). Nel comando sopra ps insieme a (-e) seleziona tutti i processi, (-un) seleziona tutti i processi eccetto i responsabili di sessione e (-F) per l'elenco in formato completo (ad es. -eaf).
Inoltre, nota le parentesi quadre nell'esempio sopra e il resto degli esempi a seguire. L'espressione tra parentesi quadre fa parte della corrispondenza del modello di classe di caratteri di grep.
4. Analizza il processo di avvio del sistema.
# systemd-analyze Avvio terminato in 487 ms (kernel) + 2.776 s (initrd) + 20.229 s (spazio utente) = 23.493 s.
5. Analizza il tempo impiegato da ogni processo all'avvio.
# systemd-analizzare la colpa 8.565s mariadb.service. 7.991s webmin.service. 6.095s postfix.service. 4.311s httpd.service. 3.926s firewalld.service. 3.780 kdump.service. 3.238s.servizio.sintonizzato. 1.712s servizio.di rete. 1.394s lvm2-monitor.service. 1.126s systemd-logind.service...
6. Analizza la catena critica all'avvio.
# systemd-analyze catena-critica Il tempo dopo l'attivazione o l'avvio dell'unità viene stampato dopo il carattere "@". Il tempo impiegato dall'unità per avviarsi viene stampato dopo il carattere "+". multi-user.target @20.222s. mariadb.service @11.657s +8.565s network.target @11.168s └─network.service @9.456s +1.712s └─NetworkManager.service @8.858s +596ms └─firewalld.service @4.931s +3.926s basic.target @4.916s sockets.target @4.916s └─dbus.socket @4.916s sysinit.target @4.905s └─systemd-update-utmp.service @4.864s +39ms auditd.service @4.563s +301ms systemd-tmpfiles-setup.service @4.485s +69ms └─rhel-import-state.service @4.342s +142ms └─local-fs.target @4.324s └─ boot.mount @4.286s +31ms[e-mail protetta]\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d19608096 └─dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d196080964.device @4.
Importante: Systemctl accetta servizi (.servizio), punto di montaggio (.montare), prese (.presa) e dispositivi (.dispositivo) come unità.
7. Elenca tutte le unità disponibili.
# systemctl list-unit-files STATO FILE UNITÀ proc-sys-fs-binfmt_misc.automount static dev-hugepages.mount static dev-mqueue.mount static proc-sys-fs-binfmt_misc.mount statico sys-fs-fuse-connections.mount statico sys-kernel-config.mount statico sys-kernel-debug.mount statico tmp.mount disabilitato. brandbot.path disabilitato...
8. Elenca tutte le unità in esecuzione.
# systemctl list-unità UNITÀ CARICO ATTIVO SOTTODESCRIZIONE. proc-sys-fs-binfmt_misc.automount caricato attivo in attesa Formati di file eseguibili arbitrari File Syste. sys-devices-pc...0-1:0:0:0-block-sr0.device caricato VBOX_CD-ROM attivo collegato. sys-devices-pc...:00:03.0-net-enp0s3.device caricato adattatore desktop PRO/1000 MT attivo collegato. sys-devices-pc...00:05.0-sound-card0.device caricato attivo collegato 82801AA AC'97 Audio Controller. sys-devices-pc...:0:0-block-sda-sda1.device caricato attivo collegato VBOX_HARDDISK. sys-devices-pc...:0:0-block-sda-sda2.device caricato attivo collegato LVM PV Qzyo3l-qYaL-uRUa-Cjuk-pljo-qKtX-VgBQ8. sys-devices-pc...0-2:0:0:0-block-sda.device caricato attivo collegato VBOX_HARDDISK. sys-devices-pl...erial8250-tty-ttyS0.device caricato attivo collegato /sys/devices/platform/serial8250/tty/ttyS0. sys-devices-pl...erial8250-tty-ttyS1.device caricato attivo collegato /sys/devices/platform/serial8250/tty/ttyS1. sys-devices-pl...erial8250-tty-ttyS2.device caricato attivo collegato /sys/devices/platform/serial8250/tty/ttyS2. sys-devices-pl...erial8250-tty-ttyS3.device caricato attivo collegato /sys/devices/platform/serial8250/tty/ttyS3. sys-devices-virtual-block-dm\x2d0.device caricato attivo collegato /sys/devices/virtual/block/dm-0. sys-devices-virtual-block-dm\x2d1.device caricato attivo collegato /sys/devices/virtual/block/dm-1. sys-module-configfs.device caricato attivo collegato /sys/module/configfs...
9. Elenca tutte le unità fallite.
# systemctl --failed. UNITÀ CARICO ATTIVO SOTTODESCRIZIONE. kdump.service caricato non riuscito fallito Ripristino da crash armamento del kernel LOAD = Riflette se la definizione dell'unità è stata caricata correttamente. ACTIVE = Lo stato di attivazione dell'unità di alto livello, ovvero la generalizzazione di SUB. SUB = Lo stato di attivazione dell'unità di basso livello, i valori dipendono dal tipo di unità. 1 unità caricate elencate. Passa --all per vedere anche le unità caricate ma inattive. Per mostrare tutti i file di unità installati utilizzare 'systemctl list-unit-files'.
10. Verificare se un'Unità (cron.service) è abilitato o no?.
# systemctl è abilitato crond.service abilitato.
11. Controllare se un'unità o un servizio è in esecuzione o no?.
# stato systemctl firewalld.service firewalld.service - firewalld - demone firewall dinamico Caricato: caricato (/usr/lib/systemd/system/firewalld.service; abilitato) Attivo: attivo (in esecuzione) da Mar 2015-04-28 16:27:55 IST; 34min fa PID principale: 549 (firewalld) CGroup: /system.slice/firewalld.service └─549 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 28 aprile 16:27:51 tecmint systemd[1]: avvio di firewalld - firewall dinamico demone... 28 aprile 16:27:55 tecmint systemd[1]: avviato firewalld - demone firewall dinamico.
12. Elenca tutti i servizi (inclusi abilitati e disabilitati).
# systemctl list-unit-files --type=service UNIT FILE STATE arp-eters.service disabilitato. auditd.service abilitato [e-mail protetta] Disabilitato. blk-availability.service disabilitato. brandbot.service statico collectd.service disabilitato. console-getty.service disabilitato. console-shell.service disabilitato. cpupower.service disabilitato. crond.service abilitato dbus-org.fedoraproject. FirewallD1.servizio abilitato...
13. Come posso avviare, riavviare, interrompere, ricaricare e controllare lo stato di un servizio (httpd.servizio) su Linux.
# systemctl avvia httpd.service # systemctl riavvia httpd.service # systemctl stop httpd.service # systemctl ricarica httpd.service # stato systemctl httpd.service httpd.service - Il server HTTP Apache Caricato: caricato (/usr/lib/systemd/system/httpd.service; abilitato) Attivo: attivo (in esecuzione) da mar 2015-04-28 17:21:30 IST; 6 secondi fa Processo: 2876 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 2881 (httpd) Status: "Elaborazione richieste..." CGroup: /system.slice/httpd.service 2881 /usr/sbin/httpd -DFOREGROUND ├─2884 /usr/sbin/httpd -DFOREGROUND ├─2885 /usr/sbin/httpd -DFOREGROUND ├─2886 /usr/sbin/httpd -DFOREGROUND ├─2887 /usr/sbin/httpd -DFOREGROUND └─2888 /usr/sbin/httpd -DFOREGROUND Apr 28 17:21:30 tecmint systemd[1]: Avvio di Apache Server HTTP... Apr 28 17:21:30 tecmint httpd[2881]: AH00558: httpd: Impossibile determinare in modo affidabile il q...ssage completo del server. Apr 28 17:21:30 tecmint systemd[1]: avviato il server HTTP Apache. Suggerimento: alcune linee erano ellittiche, usa -l per mostrarle per intero.
Nota: Quando usiamo comandi come cominciare, ricomincia, fermare e ricaricare con systemctl, non otterremo alcun output sul terminale, l'unico stato comando stamperà l'output.
14. Come attivare un servizio e abilitare o disabilitare un servizio all'avvio (servizio di avvio automatico all'avvio del sistema).
# systemctl è attivo httpd.service # systemctl abilita httpd.service # systemctl disabilita httpd.service
15. Come mascherare (rendendo impossibile l'avvio) o smascherare un servizio (httpd.servizio).
# maschera systemctl httpd.service ln -s '/dev/null' '/etc/systemd/system/httpd.service' # systemctl smaschera httpd.service rm '/etc/systemd/system/httpd.service'
16. Come uccidere un servizio usando il comando systemctl.
# systemctl kill httpd # stato systemctl httpd httpd.service - Il server HTTP Apache Caricato: caricato (/usr/lib/systemd/system/httpd.service; abilitato) Attivo: fallito (Risultato: codice di uscita) da mar 2015-04-28 18:01:42 IST; 28min fa PID principale: 2881 (codice=uscita, stato=0/SUCCESS) Stato: "Richieste totali: 0; Richieste correnti/sec: 0; Traffico attuale: 0 B/sec" Apr 28 17:37:29 tecmint systemd[1]: httpd.service: Ricevuto messaggio di notifica dal PID 2881, ma recepti...bled. Apr 28 17:37:29 tecmint systemd[1]: httpd.service: ha ricevuto un messaggio di notifica dal PID 2881, ma ha ricevuto...bled. Apr 28 17:37:39 tecmint systemd[1]: httpd.service: ricevuto un messaggio di notifica dal PID 2881, ma ricevuto... bled. Apr 28 17:37:39 tecmint systemd[1]: httpd.service: ricevuto un messaggio di notifica dal PID 2881, ma ricevuto... bled. 28 aprile 17:37:49 tecmint systemd[1]: httpd.service: ricevuto un messaggio di notifica dal PID 2881, ma ricevuto... bled. 28 aprile 17:37:49 tecmint systemd[1]: httpd.service: ricevuto un messaggio di notifica dal PID 2881, ma ricevuto... bled. 28 aprile 17:37:59 tecmint systemd[1]: httpd.service: ricevuto un messaggio di notifica dal PID 2881, ma ricevuto... bled. 28 aprile 17:37:59 tecmint systemd[1]: httpd.service: ricevuto un messaggio di notifica dal PID 2881, ma ricevuto... bled. Apr 28 18:01:42 tecmint systemd[1]: httpd.service: processo di controllo terminato, code=exited status=226. 28 aprile 18:01:42 tecmint systemd[1]: l'unità httpd.service è entrata in stato di errore. Suggerimento: alcune linee erano ellittiche, usa -l per mostrarle per intero.
17. Elenca tutti i punti di montaggio del sistema.
# systemctl list-unit-files --type=mount STATO FILE UNITÀ dev-hugepages.mount static dev-mqueue.mount static proc-sys-fs-binfmt_misc.mount static sys-fs-fuse-connections.mount statico sys-kernel-config.mount statico sys-kernel-debug.mount statico tmp.mount Disabilitato.
18. Come posso montare, smontare, rimontare, ricaricare i punti di montaggio del sistema e anche controllare lo stato dei punti di montaggio sul sistema?
# systemctl avvia tmp.mount # systemctl stop tmp.mount # systemctl riavvia tmp.mount # systemctl ricarica tmp.mount # stato systemctl tmp.mount tmp.mount - Cartella temporanea caricata: caricata (/usr/lib/systemd/system/tmp.mount; disabilitato) Attivo: attivo (montato) da mar 2015-04-28 17:46:06 IST; 2min 48s fa Dove: /tmp Cosa: tmpfs Documenti: man: hier (7) http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems Processo: 3908 ExecMount=/bin/mount tmpfs /tmp -t tmpfs -o mode=1777,strictatime (code=exited, status=0/SUCCESS) Apr 28 17:46:06 tecmint systemd[1]: Mount Temporary Directory... Apr 28 17:46:06 tecmint systemd[1]: tmp.mount: la directory /tmp su cui eseguire il montaggio non è vuota, si monta comunque. Apr 28 17:46:06 tecmint systemd[1]: directory temporanea montata.
19. Come attivare, abilitare o disabilitare un punto di montaggio all'avvio (montaggio automatico all'avvio del sistema).
# systemctl è attivo tmp.mount # systemctl abilita tmp.mount # systemctl disabilita tmp.mount
20. Come mascherare (rendendo impossibile l'avvio) o smascherare un punto di montaggio in Linux.
# maschera systemctl tmp.mount ln -s '/dev/null' '/etc/systemd/system/tmp.mount' # systemctl smaschera tmp.mount rm '/etc/systemd/system/tmp.mount'
21. Elenca tutti i socket di sistema disponibili.
# systemctl list-unit-files --type=socket STATO FILE UNITÀ dbus.socket static dm-event.socket abilitato lvm2-lvmetad.socket abilitato rsyncd.socket disabilitato. sshd.socket disabilitato. syslog.socket statico systemd-initctl.socket statico systemd-journald.socket statico systemd-shutdownd.socket statico systemd-udevd-control.socket statico systemd-udevd-kernel.socket statico 11 file di unità elencati.
22. Come posso avviare, riavviare, interrompere, ricaricare e controllare lo stato di un socket (esempio: cups.socket) su Linux.
# systemctl start cups.socket # systemctl riavvia cups.socket # systemctl stop cups.socket # systemctl ricarica cups.socket # stato systemctl cups.socket cups.socket - Socket del servizio di stampa CUPS Caricato: caricato (/usr/lib/systemd/system/cups.socket; abilitato) Attivo: ascolto attivo) da mar 2015-04-28 18:10:59 IST; 8s fa Listen: /var/run/cups/cups.sock (Stream) Apr 28 18:10:59 tecmint systemd[1]: Avvio di CUPS Printing Service Sockets. Apr 28 18:10:59 tecmint systemd[1]: Ascolto su CUPS Printing Service Sockets.
23. Come attivare un socket e abilitare o disabilitare all'avvio (autostart socket all'avvio del sistema).
# systemctl è attivo cups.socket # systemctl abilita cups.socket # systemctl disabilita cups.socket
24. Come mascherare (rendendo impossibile l'avvio) o smascherare una presa (cups.socket).
# systemctl mask cups.socket ln -s '/dev/null' '/etc/systemd/system/cups.socket' # systemctl smaschera cups.socket rm '/etc/systemd/system/cups.socket'