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 --versionControllare 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 nginxAvviare 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 nginxAbilitare 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 nginxElencare i servizi
Per vedere cosa è installato e in esecuzione, elenchi i file delle unità o le unità attive.
list-units --type=service— servizi attualmente caricatilist-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=serviceLeggere 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.targetCreare 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 myappRiavvio 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 zeroRestart=always— ogni volta che si arrestaRestartSec=5— attende prima di ritentare
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5Best practice
Gestisca i servizi con sicurezza:
- Distingua l'esecuzione (
start) dal boot (enable) - Esegua
daemon-reloaddopo aver modificato i file di unità - Utilizzi
journalctl -uper il debug, invece di file di log sparsi - Aggiunga
Restart=on-failureper 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,reloadenable/disableper il comportamento al bootjournalctl -uper i log dei servizi- File di unità
.servicepersonalizzati conRestart=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
- Gestione di utenti e gruppi
- Monitoraggio dei processi di sistema
- Attività pianificate con Cron
- Gestire i servizi di sistema con systemd