I servizi sono essenzialmente programmi in esecuzione in background al di fuori del controllo interattivo degli utenti del sistema poiché mancano di un'interfaccia. Vengono eseguiti in background per essere utilizzati ogni volta che è necessario.
Alcuni dei servizi comunemente conosciuti includono Mysql, ssh e Nginx. Su Debian, i servizi sono gestiti con Systemd, che sostituisce System V per inizializzare il sistema e i suoi componenti, inclusi i servizi che sono fondamentali per il corretto funzionamento del sistema operativo.
Alcuni dei servizi nelle versioni basate su Debian e Ubuntu che vengono eseguiti ad ogni avvio sono l'avvio, il riavvio, l'arresto e il ricaricamento. Questo tutorial li tratterà tutti in dettaglio.
Systemd vs. Init
La distribuzione basata su Linux al giorno d'oggi usa systemd invece del buon vecchio init. In systemd puoi gestire i servizi usando il comando systemctl, mentre in init puoi gestire il servizio usando i comandi service.
Noterai anche che anche se il tuo sistema Linux, in questo caso Debian, utilizza systemd, ha comunque la flessibilità di utilizzare il comando service destinato ai sistemi init. Questo perché i comandi di servizio reindirizzano a systemctl. Supponiamo che sia la compatibilità con le versioni precedenti introdotta da systemd perché gli amministratori di sistema usavano abitualmente il comando service.
Avvia, arresta e riavvia i servizi su Debian 11
Non preoccuparti di eventuali servizi di gestione poiché questo articolo tratterà sia i comandi systemctl che quelli di servizio. Senza ulteriori indugi, andiamo.
Metodo 1:utilizzo di Systemctl
Il comando systemctl è una suite di daemon systemd utilizzata per gestire i servizi e i demoni Linux rappresentati dall'ultima “d” nel nome systemd. Questa "d" è nata a causa dei demoni Unix progettati per essere compatibili con le versioni precedenti degli script di inizializzazione SysV e offrono diverse funzionalità come l'avvio parallelo dei servizi di sistema all'avvio, l'attivazione su richiesta di demoni o la logica di controllo dei servizi basata sulle dipendenze. Il suo obiettivo è unificare la configurazione e i comportamenti generali di tutte le distribuzioni basate su Linux, sostituendo i vecchi sistemi Unix SystemV e BSD init.
1. Elenco di tutti i servizi
Prima di vedere come avviare, arrestare e riavviare i servizi sulla nostra macchina Debian usando il comando systemctl, dobbiamo prima conoscere i servizi disponibili sul tuo sistema. Pertanto, utilizzeremo il comando list per elencare tutti i servizi nel nostro sistema Linux:
systemctl list-unit-files --type service -all
Come visto, il comando precedente restituisce il tipo di servizio e il suo stato. Il valore di uno stato del servizio può essere abilitato, mascherato (inattivo fino a quando la maschera non viene impostata), disabilitato, generato o statico.
Per generare solo servizi in esecuzione, puoi combinare il comando systemctl con il comando grep e dovresti essere pronto.
sudo systemctl | grep running
Il comando systemctl viene utilizzato per avviare, controllare lo stato, arrestare e riavviare i servizi seguendo le sintassi nella tabella seguente:
AZIONE | COMANDO |
---|---|
Controlla lo stato del servizio | stato systemctl (ServiceName) |
Avvia un servizio | inizio systemctl (ServiceName) |
Interrompi un servizio | sudo systemctl stop (ServiceName) |
Riavvia un servizio | sudo systemctl restart(ServiceName) |
2. Avvia un servizio
Per avviare un servizio utilizzando il comando systemctl, utilizzare l'opzione di avvio. Questa opzione è quindi seguita dal nome del servizio che desideri avviare. Pertanto, utilizza la seguente sintassi:
systemctl start (ServiceName)
Successivamente, sostituirai (ServiceName) con il servizio effettivo che desideri avviare, come nel nostro caso, vogliamo avviare il servizio vsftpd.
sudo systemctl start vsftpd.service
Come visto sopra, il servizio è attivo e funzionante.
3. Stato di un servizio
Come visto in precedenza nella tabella precedente, la sintassi per verificare lo stato del servizio è la seguente:
systemctl status (ServiceName)
Pertanto, utilizzeremo la sintassi sostituendo (ServiceName) con valori appropriati. Per controllare lo stato del servizio vsftpd, puoi emettere il seguente comando:
sudo systemctl status vsftpd.service
Nell'istantanea qui sotto, dovresti vedere che il servizio ssh è attivo e funziona correttamente
4. Interruzione di un servizio
Ora, discutiamo di come interrompere il servizio. Per fare ciò, utilizzeremo l'opzione stop del comando systemctl seguita dal nome del servizio che si desidera interrompere. l'arresto di un servizio segue la seguente sintassi:
sudo systemctl stop (ServiceName)
Ad esempio, per interrompere il servizio vsftpd attualmente in esecuzione, esegui il comando seguente:
sudo systemctl stop vsftpd.service
Dopo aver eseguito il comando di arresto, dovresti vedere che il pulsante precedentemente attivo è passato a inattivo(morto).
5. Riavvia un servizio
Per riavviare un servizio utilizzando il comando systemctl, utilizzeremo l'opzione "riavvia". Come negli esempi precedenti, questa opzione è seguita anche dal nome del servizio che desideri riavviare, come mostrato nella seguente sintassi:
sudo systemctl restart (ServiceName)
Quindi sostituisci (ServiceName) con il servizio effettivo che desideri riavviare, nel nostro caso "vsftpd".
sudo systemctl restart vsftpd.service
Ed è così che i servizi vengono riavviati utilizzando Systemd.
Puoi visitare questo link per avere maggiori informazioni su Systemd.
Metodo 2:utilizzo del comando di servizio
Il comando service gestisce i servizi nella directory /etc/init.d, sebbene alcune distribuzioni reindirizzino il comando al comando systemctl spiegato in precedenza. Il comando service fa parte del demone init comunemente usato nelle distribuzioni precedenti di sistemi Linux per gestire i servizi.
Proprio come systemctl, il comando service può essere utilizzato anche per controllare lo stato, avviare, riavviare e arrestare i servizi seguendo la sintassi descritta nella tabella seguente:
AZIONE | COMANDO |
---|---|
Riavvia un servizio | inizio systemctl (ServiceName) |
Controlla lo stato del servizio | Stato del servizio sudo (ServiceName) |
Avvia un servizio | avvio del servizio sudo (ServiceName) |
Interrompi un servizio | interruzione del servizio sudo (ServiceName) |
La sezione seguente mostra esempi di come applicare le sintassi nella tabella sopra
1. Avvia il servizio
Ora parliamo di come avviare un servizio. Per raggiungere questo obiettivo, utilizzeremo l'opzione di avvio del comando di servizio. Questa opzione viene dopo il nome del servizio che desideri eseguire. Ecco la sintassi:
sudo service (ServiceName) start
Ad esempio, se intendiamo avviare un servizio chiamato ssh, sostituiremo (ServiceName) con il servizio effettivo previsto per l'avvio, come nel nostro caso, "vsftpd".
sudo service vsftpd start
2. Verifica lo stato di un servizio
Utilizza la seguente sintassi per controllare lo stato di un servizio:
sudo service (ServiceName) status
Se, ad esempio, vogliamo eseguire un controllo dello stato di un servizio come vsftpd utilizzando il comando service, dovremo sostituire la sintassi (ServiceName) con il nome vsftpd come mostrato di seguito:
sudo service vsftpd status
3. Interruzione di un servizio
Ora vediamo come interrompere il servizio. Per fare ciò, utilizzeremo l'opzione di arresto preceduta dal nome del servizio che desideriamo interrompere. Ecco la sintassi:
sudo service (ServiceName) stop
Successivamente, sostituisci (ServiceName) con il servizio effettivo che desideri interrompere come, nel nostro caso, "vsftpd":
sudo service vsftpd stop
Come visto, il servizio ora legge Inactive(dead) dopo aver eseguito il comando di arresto, il che significa che funziona come previsto.
4. Riavvia un servizio
Proviamo i servizi di riavvio utilizzando il comando service che segue la seguente sintassi:
sudo service (ServiceName) restart
Sostituisci:
sudo service vsftpd restart
Come visto, i comandi di servizio funzionano correttamente come volevamo.
Inoltre, puoi utilizzare il comando seguente per ricaricare la configurazione di un servizio senza interrompere il servizio stesso.
sudo service vsftpd reload
Puoi visitare questo link per avere maggiori informazioni sul comando di servizio.
Come abilitare un servizio all'avvio
Nel caso in cui desideri abilitare l'avvio di un servizio Debian all'avvio del sistema, utilizza la seguente sintassi:
sudo systemctl enable SERVICE_NAME
Sostituisci:
sudo systemctl enable vsftpd.service
Come disabilitare il servizio all'avvio
Puoi anche interrompere l'avvio del servizio durante l'avvio del sistema utilizzando la seguente sintassi:
sudo systemctl disable SERVICE_NAME
Ad esempio:
sudo systemctl disable vsftpd.service
Conclusione
I servizi sono componenti vitali di qualsiasi dispositivo; quindi gestirli è un must per qualsiasi utente di livello Linux. Questa guida mostra che la gestione dei servizi è piuttosto semplice e può essere eseguita con metodi diversi. Ricorda che il metodo ideale e consigliato per svolgere l'attività del servizio in Linux è il comando systemctl che abbiamo spiegato in precedenza nella prima sezione di questa guida. Altri metodi come gestire la directory /etc/init.d sono obsoleti.
Questo tutorial ha spiegato le funzionalità di avvio, riavvio, arresto e controllo dello stato del servizio, ma ciò non ti impedisce di apprendere funzioni aggiuntive dalle loro pagine ufficiali. Continua a seguire FOSS Linux per ulteriori guide relative a Linux.