0Pricing
Linux Server Deployment & SSH Mastery · Lezione

Gestire i servizi di sistema con systemd

Controllate i programmi a esecuzione prolungata che alimentano un server Linux usando systemd: avviate, arrestate, abilitate e ispezionate i servizi, leggetene i log con journalctl e comprendete il ruolo delle unità nella gestione dei processi.

Gestire i servizi di sistema con systemd è una lezione Linux Server Deployment & SSH Mastery gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Server Deployment & SSH Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.

Servizi e processi ordinari

Ha già gestito singoli processi e attività pianificate. Tuttavia, i programmi che definiscono un server — server web, database, SSH — vengono eseguiti come servizi: demoni in background che dovrebbero avviarsi al boot e riavviarsi in caso di errore.

Sui sistemi Linux moderni, i servizi sono gestiti da systemd, il gestore del sistema e dei servizi.

Cosa gestisce systemd

systemd organizza tutto in unità. Il tipo più comune è l'unità .service, che descrive come eseguire un demone.

Il comando systemctl è l'interfaccia principale per ispezionare e controllare queste unità.

systemctl --version

Controllare lo stato di un servizio

systemctl status mostra se un servizio è in esecuzione, l'ID del processo principale, le righe recenti del log e se il servizio è abilitato al boot.

Di solito è il primo comando da eseguire quando si risolvono i problemi di un servizio.

systemctl status nginx

Avviare e arrestare i servizi

Per controllare lo stato di esecuzione di un servizio utilizzi start, stop e restart. Questi comandi hanno effetto immediato, ma non modificano il comportamento al boot.

Utilizzi reload quando un servizio supporta la rilettura della configurazione senza interrompere le connessioni.

sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl stop nginx

Abilitare i servizi al boot

enable fa sì che un servizio si avvii automaticamente quando il server esegue il boot; disable lo rimuove dal boot. Questo è indipendente dal fatto che sia attualmente in esecuzione.

La pratica opzione --now abilita e avvia il servizio in un solo passaggio.

sudo systemctl enable nginx
sudo systemctl enable --now nginx
sudo systemctl disable nginx

Elencare i servizi

Per vedere cosa è installato e in esecuzione, elenchi i file delle unità o le unità attive.

  • list-units --type=service — servizi attualmente caricati
  • list-unit-files --type=service — tutti i servizi installati e il relativo stato di abilitazione
systemctl list-units --type=service --state=running
systemctl list-unit-files --type=service

Leggere i log con journalctl

systemd raccoglie l'output dei servizi nel journal. Lo interroghi con journalctl.

  • -u nginx — solo questo servizio
  • -f — segue l'output in tempo reale
  • -e — passa alla fine
sudo journalctl -u nginx -f
sudo journalctl -u ssh --since '1 hour ago'

Anatomia di un file di unità

Un servizio è definito da un file di unità, solitamente in /etc/systemd/system/ o /lib/systemd/system/. Contiene tre sezioni principali: [Unit], [Service] e [Install].

La riga ExecStart indica a systemd quale comando eseguire.

[Unit]
Description=My App
After=network.target

[Service]
ExecStart=/usr/bin/myapp --port 8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

Creare un proprio servizio

Per eseguire un proprio programma come servizio, inserisca un file di unità in /etc/systemd/system/, ricarichi systemd affinché rilevi il nuovo file, quindi abiliti e avvii il servizio.

daemon-reload è necessario dopo ogni modifica a un file di unità.

sudo nano /etc/systemd/system/myapp.service
sudo systemctl daemon-reload
sudo systemctl enable --now myapp

Riavvio automatico in caso di errore

Una delle funzioni migliori di systemd è il ripristino automatico. La direttiva Restart= gli indica di rilanciare un servizio arrestato in modo anomalo.

  • Restart=on-failure — solo dopo un'uscita diversa da zero
  • Restart=always — ogni volta che si arresta
  • RestartSec=5 — attende prima di ritentare
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5

Best practice

Gestisca i servizi con sicurezza:

  • Distingua l'esecuzione (start) dal boot (enable)
  • Esegua daemon-reload dopo aver modificato i file di unità
  • Utilizzi journalctl -u per il debug, invece di file di log sparsi
  • Aggiunga Restart=on-failure per rendere più resilienti le applicazioni personalizzate

Verifica rapida

Verifichi le sue conoscenze su systemd.

Riepilogo

Ora sa gestire i servizi del server con systemd:

  • status, start, stop, restart, reload
  • enable/disable per il comportamento al boot
  • journalctl -u per i log dei servizi
  • File di unità .service personalizzati con Restart= per una maggiore resilienza

Questo completa le sue competenze nella gestione dei processi e delle attività con i demoni a esecuzione prolungata.

Domande Frequenti

La lezione «Gestire i servizi di sistema con systemd» è gratuita?

Sì — il testo completo di «Gestire i servizi di sistema con systemd» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Server Deployment & SSH Mastery, passa a CoddyKit PRO. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.

Cosa imparerò in «Gestire i servizi di sistema con systemd»?

Controllate i programmi a esecuzione prolungata che alimentano un server Linux usando systemd: avviate, arrestate, abilitate e ispezionate i servizi, leggetene i log con journalctl e comprendete il r… Eserciti Linux Server Deployment & SSH Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Linux Server Deployment & SSH Mastery?

Non è richiesta alcuna esperienza precedente. Linux Server Deployment & SSH Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Gestire i servizi di sistema con systemd»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Linux Server Deployment & SSH Mastery?

Sì. Ogni lezione Linux Server Deployment & SSH Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Gestione di utenti e gruppi
  2. Monitoraggio dei processi di sistema
  3. Attività pianificate con Cron
  4. Gestire i servizi di sistema con systemd
← Torna a Linux Server Deployment & SSH Mastery