logo

Come avviare, arrestare e riavviare i servizi in Linux utilizzando il comando systemctl

I servizi di sistema svolgono un ruolo cruciale nel funzionamento di un sistema Linux, gestendo varie attività e processi in background.systemctl>è un potente strumento da riga di comando che consente agli utenti di gestire questi servizi in modo efficace. In questo articolo esploreremo le basi dell'utilizzosystemctl>per avviare, arrestare, riavviare, abilitare, disabilitare e visualizzare lo stato dei servizi in un ambiente Linux.

Cos'è systemctl?

Prima di immergersi nella gestione dei servizi, è essenziale comprenderne le nozioni di basesystemctl>. Questo comando viene utilizzato per controllare il sistema systemd e il gestore dei servizi, che è un componente centrale nelle moderne distribuzioni Linux.



systemctl [command] [unit]>

Qui,

  • command> : Azione da eseguire (ad esempio, avviare, arrestare, riavviare, abilitare, disabilitare).
  • unit> : Il servizio o l'unità interessata.

Systemctl è un controller o utilità di Systemd (un sistema init con una serie di programmi eseguiti in background), con ausiliari nella gestione dei servizi. Questi comandi vengono eseguiti in modalità root se non si sta eseguendo il rooting del sistema, richiedendo la password di root.

Cos'è un servizio?

Un servizio informatico è un processo in background che esegue compiti e funzioni specifici senza l'intervento dell'utente. I servizi spesso si avviano automaticamente durante l'avvio del sistema e vengono eseguiti continuamente per fornire funzionalità come servizi Web, condivisione di file o monitoraggio del sistema. Sono gestiti dal sistema operativo e possono essere avviati, arrestati o riavviati secondo necessità. I servizi aiutano a garantire che le operazioni essenziali siano costantemente disponibili. Gli esempi includono server Web come Apache, server di database come MySQL, E servizi di registrazione del sistema.



Cos'è un demone?

Un demone è un processo in background che viene eseguito continuamente su un sistema Linux o Unix. Esegue attività senza l'interazione diretta dell'utente, spesso avviandosi automaticamente all'avvio. Esempi comuni includono server Web, server di database e strumenti di monitoraggio del sistema. I demoni di solito hanno nomi che terminano con d, comehttpd>Osshd>. Aiutano a gestire le funzioni e i servizi del sistema in modo efficiente.

Cos'è il sistema init?

Il sistema init è il primo processo che viene eseguito all'avvio di un sistema Linux ed è responsabile dell'inizializzazione del sistema. Gestisce servizi e processi di sistema, gestendo il loro avvio, arresto e riavvio. I sistemi init comuni includono SysVinit, Upstart e systemd. Il sistema init garantisce che tutti i servizi necessari funzionino correttamente e gestisce le dipendenze tra di loro. Continua a funzionare in background per monitorare e gestire i processi di sistema durante il funzionamento del sistema.

Unità in systemd

In systemd, le unità sono gli oggetti di base che systemd gestisce e controlla. Rappresentano risorse di sistema come servizi, timer, dispositivi e punti di montaggio. Ogni unità è definita da un file di configurazione con un suffisso specifico, come.service>per servizi o.timer>per i timer. Le unità possono essere avviate, arrestate, abilitate o disabilitate utilizzando i comandi systemctl. Sono essenziali per definire il modo in cui il sistema avvia e gestisce vari processi e risorse.



.unità di servizio in systemd

Systemd.service>le unità sono file di configurazione utilizzati per gestire i servizi sui sistemi Linux. Definiscono come e quando i servizi devono essere avviati, arrestati e riavviati. Ogni.service>il file contiene dettagli come il nome del servizio, la descrizione e il comando da eseguire. Questi file si trovano in genere in/etc/systemd/system>O/lib/systemd/system>. Gestirli implica comandi comesystemctl start>,systemctl stop>, Esystemctl enable>.

Come trovare tutte le unità systemd nel sistema?

Per elencare le unità di sistema disponibili o per elencare tutti i servizi in Linux utilizziamo il seguente comando:

systemctl list-unit-files --type service -all>

Come avviare un servizio di sistema in Linux

Sintassi:

metodi di stringa
sudo systemctl start service.service>

Il comando start serve per avviare (attivare) una o più unità specificate sulla riga di comando.

Esempio:

sudo systemctl start mariadb>
avvio del sistemactl

Comando Avvia

Come interrompere un servizio di sistema in Linux

Sintassi:

sudo systemctl stop service.service>

Il comando stop serve per arrestare il servizio o (disattivare) una o più unità specificate sulla riga di comando.

Esempio:

sudo systemctl stop mariadb>
systemctl stop

Arresto e stato del comando

Come visualizzare lo stato di un servizio di sistema in Linux

Sintassi:

sudo systemctl status service.service>

Il comando status serve per verificare lo stato del servizio. Mostra informazioni concise sullo stato di runtime di una o più unità, seguite dai dati di registro più recenti del diario. Se non viene specificata alcuna unità, mostra lo stato del sistema.

Esempio:

sudo systemctl status mariadb>
stato del sistemactl

Stato del comando

Come riavviare un servizio di sistema in Linux

Sintassi:

sudo systemctl restart service.service>

Il comando restart serve per riavviare il servizio in esecuzione. Arresta e quindi avvia una o più unità specificate nella riga di comando. Se le unità non sono ancora in funzione, verranno avviate.

Esempio:

sudo systemctl restart mariadb>
riavvio systemctl

Comando Riavvio

Come abilitare un servizio di sistema in Linux

Sintassi:

sudo systemctl enable name_service.service>

Il comando abilita serve per eseguire il servizio fin dall'inizializzazione se è costituito da una o più unità o istanze di unità. Questo creerà una serie di collegamenti simbolici , come codificato nelle sezioni [Installa] dei file unitari indicati. la configurazione del gestore di sistema viene ricaricata (in modo equivalente al daemon-reload), per garantire che le modifiche vengano prese in considerazione immediatamente.

Esempio

sudo systemctl enable mariadb>

abilita systemctl

Comando Abilita

Stato del comando

Come disabilitare un servizio di sistema in Linux

Sintassi:

sudo systemctl disable name_service.service>

Il comando di disabilitazione serve per ritirare il servizio dall'inizializzazione di una o più unità. Ciò rimuove tutti i collegamenti simbolici ai file dell'unità che supportano le unità specificate dalla directory di configurazione dell'unità e quindi annulla qualsiasi modifica apportata abilitando o collegando.

Esempio:

sudo systemctl disable mariadb>

systemctl disabilita

Comando Disabilita

Stato del comando

forzatura cache pulita npm

Spegnere o riavviare il sistema utilizzando systemctl

Riavviare il sistema: Istruiscesystemd>per riavviare l'intero sistema. Tutti i servizi vengono arrestati e il sistema esegue un processo di arresto completo prima di riavviarsi.

sudo systemctl reboot>

Spegnere il sistema: Dice a systemd di spegnere la macchina. Tutti i servizi e i processi vengono arrestati e il sistema viene spento in modo sicuro.

sudo systemctl shutdown>

journalctl

journalctl>è un comando utilizzato nei sistemi Linux per interrogare e visualizzare i log dasystemd>journal, che è un servizio di sistema che raccoglie e archivia i dati di registrazione. Ecco una semplice guida su come utilizzarejournalctl>:

journalctl -n 10>viene utilizzato per visualizzare le ultime 10 voci (righe) dal journal systemd. Ecco una ripartizione di ciò che fa ciascuna parte del comando:

  • journalctl> : richiama iljournalctl>comando, che viene utilizzato per interrogare e visualizzare i log dal journal systemd.
  • -n 10> : specifica il numero di righe da visualizzare. In questo caso,-n 10>istruiscejournalctl>per mostrare le ultime 10 voci del diario.
journalctl -n 10>

Proteggere un servizio utilizzando systemd è una pratica essenziale per salvaguardare il tuo sistema da potenziali vulnerabilità e accessi non autorizzati. Ecco una guida semplificata su come eseguire questa operazione:

1. Comprendere i file delle unità di servizio

  • Configurazione del servizio : Ogni servizio in systemd è gestito da un file unitario, tipicamente situato in/etc/systemd/system/>. Questi file definiscono il funzionamento del servizio, incluso il comportamento di avvio, i limiti delle risorse e le impostazioni di sicurezza.

2. Limitare le autorizzazioni del servizio

  • Autorizzazioni utente e gruppo : specificare l'utente e il gruppo in cui viene eseguito il servizio. Evitare di utilizzare l'utente root quando possibile per ridurre al minimo l'impatto delle violazioni della sicurezza.

3. Utilizzare le funzionalità di sicurezza di systemd

  • PrivateTmp : attiva privato/tmp>E/var/tmp>directory per il servizio per evitare fughe di informazioni tra diversi servizi.
  • ProtectSystem e ProtectHome : impostare queste opzioni per limitare l'accesso rispettivamente alle directory di sistema e alle directory home dell'utente, per migliorare la sicurezza del sistema.
  • ReadOnlyPaths e ReadWritePaths : specifica da quali directory il servizio può leggere o scrivere. Limitare l'accesso in scrittura può impedire modifiche involontarie ai file critici.

4. Limitare l'utilizzo delle risorse

  • Limita CPU e memoria : UtilizzoCPUQuota>EMemoryLimit>opzioni per limitare l'utilizzo della CPU e della memoria del servizio, prevenendo attacchi di esaurimento delle risorse.

5. Abilita i controlli di rete

  • Limita l'accesso alla rete : UtilizzareRestrictAddressFamilies>,IPAddressAllow>, EIPAddressDeny>opzioni per controllare l'accesso alla rete per il servizio, limitandone l'esposizione a potenziali minacce.

6. Impostare le autorizzazioni del file system

  • Autorizzazioni del file system : assicurati che i file e le directory del servizio dispongano delle autorizzazioni appropriate (chmod>) e proprietà (chown>) per impedire l'accesso non autorizzato.

7. Aggiorna e monitora regolarmente

  • Mantieni il sistema aggiornato : aggiorna regolarmente il tuo sistema e il software del servizio per correggere le vulnerabilità della sicurezza e garantire che le tue misure di sicurezza rimangano efficaci.
  • Monitorare i registri : Monitorare i registri del journal di sistema (journalctl>) per eventuali attività sospette o eventi relativi alla sicurezza e, se necessario, intraprendere le azioni appropriate.

Conclusione

Abbiamo discusso di systemctl che è uno strumento da riga di comando vitale per la gestione dei servizi di sistema in Linux, svolgendo un ruolo cruciale in attività come l'avvio, l'arresto, il riavvio, l'abilitazione e la disabilitazione dei servizi. Questo articolo fornisce una guida completa a systemctl, coprendone la sintassi e i comandi chiave. Dall'elenco delle unità systemd disponibili all'abilitazione o disabilitazione dell'avvio automatico, ogni comando contribuisce a una gestione efficace del servizio. L'articolo affrontava anche domande comuni, offrendo soluzioni pratiche per attività quali il controllo dello stato del servizio, l'avvio, l'arresto e il riavvio dei servizi e l'abilitazione o la disabilitazione dell'avvio automatico. Nel complesso, comprendere e padroneggiare i comandi systemctl è essenziale per Amministratori Linux per garantire la stabilità e le prestazioni ottimali dei loro sistemi.

Systemctl – Domande frequenti

Cos'è un servizio Linux?

Un servizio Linux è un processo o un'applicazione in background che viene eseguito indipendentemente dall'interazione dell'utente, fornendo funzionalità specifiche o eseguendo attività di sistema. È gestito dal sistema init, in genere systemd, e può essere avviato, arrestato e gestito utilizzando comandi comesystemctl>.

Qual è la differenza tra Systemctl e servizio?

systemctl>è uno strumento da riga di comando utilizzato per gestire i servizi systemd, mentreservice>è un collegamento simbolico asystemctl>su molti sistemi, fornendo compatibilità con gli script di inizializzazione più vecchi.

numerare l'alfabeto

Come controllare lo stato del servizio in Linux?

Utilizzare ` systemctl status `> per vedere se il servizio è in esecuzione, attivo (interrotto di recente) o inattivo (mai avviato). Ciò rivela informazioni importanti come l'utilizzo della memoria e le connessioni attive.

Come avvio, interrompo, riavvio un servizio?

Per iniziare , utilizzo :

sudo systemctl start>

Per fermarsi , utilizzo :

sudo systemctl stop>

Ricominciare , utilizzo :

sudo systemctl restart>

Nota : Ricordarsi di sostituire>con il nome effettivo del servizio.

Come posso avviare automaticamente un servizio all'avvio?

Utilizzosudo `> systemctl enable `> per impostare l'avvio automatico del servizio all'avvio del sistema.

Per disabilitare l'avvio automatico, utilizzare ` sudo systemctl disable `> .