GNU/Linux >> Linux Esercitazione >  >> Linux

Iniziare con systemctl

La gestione dei servizi è una responsabilità chiave per gli amministratori di sistema. Non c'è dubbio che la transizione tra il vecchio metodo SysV (usando il service e chkconfig comandi) e il più recente systemd -comandi basati su (come systemctl ) è stato controverso. In effetti, molti amministratori di sistema hanno ancora sentimenti molto forti in un modo o nell'altro.

La realtà è che molte distribuzioni, inclusa Red Hat Enterprise Linux (RHEL), hanno iniziato a gestire i servizi con systemd . Quindi, tu ed io dobbiamo sapere come lavorare con systemctl comando di gestione.

Non sono il tipo di autore/formatore/amministratore che presume che tutti siano avanzati. Con questo in mente, indirizzerò questo articolo alle persone che hanno bisogno di una spiegazione semplice e fondamentale su come e quando usare il più comune systemctl sottocomandi. Alla fine, fornisco anche un ottimo trucco per visualizzare rapidamente tutto il systemctl sottocomandi.

Nota:la pagina man di systemctl si riferisce alla seconda parola nella stringa come "comando", il che sembra alquanto confuso. Mi riferirò a systemctl stesso come un comando , quindi la stringa che la segue come sottocomando . L'argomento è il nome del servizio e occupa la terza posizione nella sintassi.

Ecco un esempio di sintassi:

systemctl subcommand argument
# systemctl status sshd

Ti mostrerò come e quando usare systemctl . La maggior parte dei miei esempi usa il comune sshd servizio.

[ I lettori hanno apprezzato anche: Come ho imparato a smettere di preoccuparmi e ad amare il sistemad ]

Stato del servizio

Il miglior punto di partenza è comprendere le attuali funzionalità del servizio. Inizierò con l'approccio più semplice, l'uso dello status sottocomando:

# systemctl status sshd

Ovviamente, l'idea è che ti sei appena seduto su un server Linux sconosciuto e devi conoscere lo stato attuale di sshd servizio. Nota che vengono fornite molte altre informazioni, inclusa una sinossi del servizio, da dove è stato caricato, stato, ID processo (PID) e modifiche recenti.

Lo systemctl status Il comando è utile anche durante la risoluzione dei problemi. Durante la risoluzione dei problemi di una configurazione, ne verifico quasi immediatamente lo stato utilizzando systemctl . Perché preoccuparsi di firewall, SELinux e file di configurazione se il servizio non è nemmeno in esecuzione?

Quindi, ora sai come controllare lo stato di servizi come SSH. Come manipoli questo stato?

Avvio e arresto dei servizi

Quando modifichi un file di configurazione per un servizio in esecuzione, devi riavviare o ricarica il servizio. In questo modo il servizio rilegge il file e quindi implementa le modifiche. In passato utilizzavi il service comando, come negli esempi seguenti:

# service sshd restart

Servizi in systemd sono gestiti tramite il systemctl comando. Per riavviare il servizio SSH con systemctl , inserisci:

# systemctl restart sshd

Personalmente, trovo questa sintassi un po' più semplice. Si legge quasi come una frase:"Systemctl, per favore riavvia sshd."

La sintassi è simile se vuoi interrompere o avviare un servizio:

# systemctl stop sshd

# systemctl start sshd

I servizi che si rifiutano di interrompersi con grazia possono essere eliminati utilizzando systemctl , anche. Ad esempio, per uccidere sshd servizio, inserisci:

# systemctl kill sshd

I servizi di ricarica sono leggermente diversi. Il reload il sottocomando fa sì che il servizio rilegga solo il file di configurazione, mentre il restart il sottocomando termina tutte le connessioni correnti e rilegge il file di configurazione.

Ad esempio, se digiti systemctl restart sshd , tutte le connessioni SSH correnti vengono eliminate. Se lo ricarichi, tuttavia, le connessioni esistenti vengono mantenute. In entrambi i casi, il file di configurazione viene riletto e le eventuali modifiche vengono implementate.

La ricarica provoca meno tempi di inattività, ma non tutti i servizi lo supportano.

L'start , stop , restart, e reload i sottocomandi influiscono solo sul runtime corrente.

Abilita e disabilita i servizi

Molti amministratori che non conoscono Linux sono confusi sulla differenza tra start /stop e enable /disable . Ho già discusso di start , stop e restart nella sezione precedente. Start e stop vengono utilizzati per modificare lo stato corrente del servizio. Tuttavia, se il server si riavvia, lo stato del servizio tornerà a qualunque sia l'impostazione di avvio predefinita. In altre parole, se interrompo sshd service e quindi riavviare il mio server, il processo di avvio esaminerà il file di configurazione e avvierà o meno sshd , a seconda di quanto specificato. Se interrompo il servizio e quindi riavvio, e il file di configurazione dice di avviare il servizio all'avvio, sarà di nuovo in esecuzione.

In precedenza, hai usato chkconfig comando per definire l'impostazione di avvio del servizio per ogni runlevel. Ecco un esempio:

# chkconfig --level 35 sshd on

Questo comando abilita sshd per l'avvio nei runlevel 3 e 5.

Con systemctl , la configurazione dell'impostazione di avvio predefinita è opera di enable e disable sottocomandi. La sintassi è la stessa di start , stop e restart sottocomandi. Ad esempio, per impostare l'avvio di SSH all'avvio del server, immettere:

# systemctl enable sshd

Allo stesso modo, per configurare SSH non per iniziare durante l'avvio, digitare:

# systemctl disable sshd

La configurazione della configurazione di avvio predefinita per i servizi è semplice, così come l'avvio e l'arresto dei servizi. Tuttavia, sembra esserci una certa confusione sull'utilizzo dei due insieme.

Utilizza start e abilita insieme

Alcuni trovano strano che l'abilitazione di un servizio non lo avvii. Ad esempio, se hai appena scaricato un nuovo programma e vuoi avviarlo in modo da poterne testare le funzionalità e vuoi configurarlo per l'avvio all'avvio del server, devi inserire due comandi:

# systemctl start sshd

# systemctl enable sshd

La disabilitazione di un servizio avviene allo stesso modo. Digita systemctl disable sshd per impedire l'avvio di SSH all'avvio del server. Tuttavia, se SSH è in esecuzione nel runtime corrente, rimane attivo, anche se disabilitato. Devi stop SSH per disattivarlo nel runtime corrente.

Ad esempio, per interrompere SSH e impedirne l'avvio all'avvio del sistema, immettere:

# systemctl stop sshd

# systemctl disable sshd

Ricordati di controllare lo status del servizio ogni volta che non sei sicuro inserendo:

# systemctl status sshd

Puoi verificare se un servizio è configurato per l'avvio automatico utilizzando un altro systemctl sottocomando:is-enabled . Ad esempio, per visualizzare se SSH è abilitato, immettere:

# systemctl is-enabled sshd

Tanti sottocomandi:il trucco

Ho trattato un bel po' di systemctl sottocomandi, incluso start , stop , restart , enable , disable , status , e altri. È molto da ricordare! È qui che entra in gioco il completamento della scheda del tuo vecchio amico. Prova la seguente tecnica sul tuo sistema:digita systemctl e quindi aggiungi un singolo spazio. Premi la scheda due volte e bash mostra tutti i systemctl disponibili sottocomandi! Questo trucco per il completamento delle schede è uno di cui penso che pochi amministratori di sistema traggano abbastanza vantaggio.

[ Vuoi testare le tue capacità di amministratore di sistema? Fai una valutazione delle abilità oggi. ] 

Concludi

Come puoi vedere, la gestione dei servizi tramite il systemctl il comando non è davvero così difficile. Lo trovo più semplice e logico del vecchio service e chkconfig comandi, personalmente. È anche comodo avere un solo comando per gestire i servizi invece di due.

Ecco i punti chiave da ricordare:

  • Utilizza start/stop/restart per gestire il runtime corrente.
  • Utilizza start/stop/restart/reload dopo aver modificato i file di configurazione.
  • Utilizza abilita/disabilita per gestire l'azione di avvio predefinita.
  • Utilizza lo stato molto presto nel processo di risoluzione dei problemi.

Infine, non devi memorizzare tutto il systemctl disponibile sottocomandi. Inserisci semplicemente il systemctl comando e seguilo con uno spazio, quindi premi Tab due volte. La funzione di completamento delle schede integrata di Bash fa il resto!

Gli amministratori di sistema si trovano regolarmente a manipolare i servizi e, si spera, tu sia un po' più a tuo agio con quando usare il più comune systemctl sottocomandi.


Linux
  1. Gestisci più istanze del servizio con systemctl

  2. Iniziare con Zsh

  3. Iniziare con ls

  4. Iniziare con Samba per l'interoperabilità

  5. Iniziare con un account rivenditore Plesk

Introduzione al sistema operativo Linux

Guida introduttiva a GitHub

Iniziare con Nix Package Manager

Iniziare con cPanel

Iniziare con SiteApps

Centos 7:Per iniziare