GNU/Linux >> Linux Esercitazione >  >> Linux

30 Esercizi sui processi Linux per amministratori di sistema

Questa è la serie di esercizi che seguono l'articolo sulla spiegazione dei processi Linux.

Se hai letto attentamente l'articolo e hai compreso i principi dettagliati all'interno, dovresti essere in grado di rispondere alla maggior parte delle domande.

Se dovessi trovare errori o imprecisioni, sentiti libero di lasciare un commento.

Buona fortuna!

Nozioni di base sui processi

  • Domanda 1 :sul tuo host Linux, ci sono molti processi in esecuzione alla volta. Tuttavia, un'informazione può identificare in modo univoco un processo.

Come si chiama?

Expand MeSu Linux, un processo può essere identificato in modo univoco da un PID (o ID processo), che non può essere assegnato a due processi distinti alla volta.
  • Domanda 2 :quando il tuo sistema si avvia, avvia il primo processo sulla tua istanza.

Come si chiama?

Expand MeSi chiama processo init e viene utilizzato per eseguire script di inizializzazione per rete, lavori o moduli. Nelle distribuzioni recenti, è stato sostituito da un processo systemd.
  • Domanda 3 :al momento hai un terminale di shell aperto sul tuo host ed esegui il seguente comando.

Internamente, quali sono le chiamate di sistema invocate per eseguire un tale comando?

Espandi MeFirst, il kernel eseguirà il fork del processo corrente (cioè l'interprete bash) in un nuovo processo. Successivamente, l'immagine del processo bash verrà sostituita dall'immagine caricata del programma ls. Infine, il comando viene eseguito.
  • Domanda 4 :apri un terminale shell sul tuo host cliccando su “Terminale”.

In breve, descrivi come funziona il terminale .

EspandimiIl terminale è un semplice processo interattivo che attende perennemente l'input dell'utente. Quando viene emesso un comando, il comando viene eseguito eseguendo il fork in un nuovo processo ed eseguendo il comando in esso. Nel frattempo, il processo padre (cioè il terminale stesso) attende la conclusione del processo figlio. Al termine, il processo padre riprende.

Comandi di elaborazione

  • Domanda 5 :il tuo amministratore di sistema ti chiede di identificare tutti i processi che possiedi sull'host.

Quale comando eseguiresti per farlo?

EspandimiIl modo più semplice per farlo è eseguire il comando ps. Per impostazione predefinita, non riporterà i dispositivi tty, ma puoi scegliere di eseguire "ps u" per vedere tutti i processi.
  • Domanda 6 :ti viene chiesto dal tuo amministratore di sistema di identificare tutti i processi sul tuo sistema.

Puoi fornire due comandi che visualizzino tutti i processi sull'host?

EspandimiPer visualizzare tutti i processi su Linux, puoi utilizzare "ps aux" (che è una sintassi BSD) o "ps -ef" (che è una sintassi POSIX)
  • Domanda 7 :quale comando visualizza i processi come un albero su Linux?
EspandimiPer visualizzare tutti i processi come un albero dei processi, devi usare il comando "pstree".

Processi in background e in primo piano

  • Domanda 8 :quale sintassi viene utilizzata su Linux per eseguire un processo in background?
EspandimiPer eseguire un processo in background, devi aggiungere un segno "&" alla fine del comando.
  • Domanda 9 :qual è il termine che descrive un processo avviato in una shell di terminale?
Espandi MeUn processo eseguito in una shell è chiamato "lavoro" e il comando jobs mostra i tuoi lavori di shell correnti.
  • Domanda 10 :hai eseguito un comando in background, ma vuoi che il tuo processo venga eseguito in primo piano.

Quale comando eseguiresti?

EspandimiL'ID lavoro è 1, quindi eseguiresti "fg %1"
  • Domanda 11 :il tuo processo è ora eseguito in primo piano .

Quali controlli avresti premuto sulla tastiera per interrompere il processo (e non ucciderlo)?

EspandimiPer interrompere un processo, o per inviare un segnale SIGSTOP a un processo, devi premere Ctrl + Z.
  • Domanda 12 :il tuo processo è ora interrotto.

Come riprenderesti l'esecuzione in background?

EspandimiPer riprendere l'esecuzione, puoi eseguire il comando "bg %1".
  • Domanda 13 :quali tasti puoi premere sulla tastiera per inviare un SIGINT a un processo in primo piano?
EspandimiPer inviare un SIGINT a un segnale in primo piano, dovresti premere Ctrl + C.

Segnali e processi

  • Domanda 14 :come definiresti un segnale quando si tratta di processi?
Expand MeSu Linux, i segnali sono una forma di comunicazione tra processi (chiamata anche IPC) che crea e invia notifiche asincrone ai processi in esecuzione sul verificarsi di un evento specifico. I segnali possono essere informativi (ad esempio SIGUSR1, SIGUSR2) oppure possono essere utilizzati per trasmettere un ordine specifico al processo (interruzione, arresto, uccisione)
  • Domanda 15 :quale segnale viene utilizzato su Linux per arrestare delicatamente un processo?
Espandi MePer arrestare con grazia un processo, devi utilizzare il segnale SIGTERM (noto anche come segnale numero 15)
  • Domanda 16 :d'altra parte, diciamo che vuoi terminare un processo immediatamente, quale segnale useresti per quello? Qual è il numero di questo segnale?
EspandimiPer terminare un processo senza dargli la possibilità di arrestarsi con grazia, devi emettere un segnale SIGKILL (noto anche come segnale 9)
  • Domanda 17 :hai eseguito il seguente comando nella shell del tuo terminale.

L'esecuzione del processo richiede molto tempo, quindi decidi di lasciare il tuo host e di spegnere il tuo terminale attuale.

Cosa è successo?

EspandimiQuando hai chiuso il terminale, è stato inviato un segnale SIGHUP al processo. Di conseguenza, il processo è stato interrotto immediatamente.
  • Domanda 18 :quali soluzioni puoi dare per evitare ciò che è appena successo?
EspandimiPer evitare che un processo venga interrotto con un segnale SIGHUP, puoi usare il comando "nohup" nel modo seguente "nohup ./script &"
  • Domanda 19 :a priori, puoi fornire altri segnali utilizzati sui sistemi Linux?
Espandi MeSIGQUIT un segnale invocato quando esci da una sessione interattiva. Può essere utilizzato, ad esempio, nelle shell dei terminali o nelle sessioni SSH. SIGCONT è un segnale utilizzato per riprendere un processo interrotto (dopo un SIGSTOP)

Comandi di processi avanzati

  • Domanda 20 :quale comando viene utilizzato su Linux per elencare tutti i processi con uno schema specifico?
EspandimiPer cercare processi con uno schema specifico, puoi usare il comando “pgrep” con la seguente sintassi “pgrep
  • Domanda 21 :quale comando useresti per uccidere facilmente (SIGKILL) tutti i processi che iniziano con "fire" ?
Espandi MePer uccidere tutti i processi che iniziano con "fire", eseguiresti "pkill fire*"
  • Domanda 22 :su Linux, quale comando viene utilizzato per eseguire un processo con un livello di priorità personalizzato?
Expand Me“Nice” è il comando utilizzato per eseguire un comando con una priorità personalizzata, in modo che utilizzi più o meno risorse della CPU.
  • Domanda 23 :un processo ha un buon livello di 19, utilizzerà quante più risorse possibile?
Espandi MeNo, più bello è il processo, più sei disposto a condividere risorse con gli altri. Di conseguenza, il processo ha un livello di priorità molto basso.
  • Domanda 24 :qual è il bel livello predefinito quando i processi vengono creati su Linux?
EspandimiPer impostazione predefinita, i processi vengono creati con un buon livello di 0.
  • Domanda 25 :come utente non sudo, puoi creare un processo con un buon livello di -5?
Espandi MeNo, gli utenti non sudo non sono in grado di creare processi con un livello piacevole inferiore a quello predefinito assegnato. Inoltre, quando hai creato un processo con un livello piacevole personalizzato, non puoi abbassarlo, anche se è maggiore di zero.
  • Domanda 26 :quale comando può essere utilizzato per impostare la priorità di un processo in esecuzione su Linux?
Expand MePer personalizzare la priorità di un processo in esecuzione, devi usare il comando “renice” con questa sintassi “renice -n

Processi di monitoraggio

  • Domanda 27 :quale comando può essere utilizzato su Linux per monitorare i processi in tempo reale?
EspandimiPer monitorare le risorse utilizzate dai processi, è possibile utilizzare il comando "top" o il comando "htop" per una visualizzazione più semplice.
  • Domanda 28 :quale scorciatoia può essere utilizzata nel comando in alto per modificare la frequenza di aggiornamento?
EspandimiPer modificare la frequenza di aggiornamento, puoi premere il tasto "d" e impostarlo su 1.0, ad esempio.
  • Domanda 29 :quale opzione può essere utilizzata per eseguire il comando top per un numero personalizzato di iterazioni?
EspandimiPer eseguire "top" per un determinato numero di iterazioni, puoi utilizzare "top –n "
  • Domanda 30 :sei a conoscenza di altre soluzioni per monitorare efficacemente i processi Linux?
Espandi MePer monitorare i sistemi Linux, un amministratore di sistema può utilizzare Cockpit, Grafana, Prometheus, Nagios o Telegraf.

Conclusione

Con quegli esercizi sui processi Linux, si spera che tu abbia imparato di più sui processi, su come gestirli e monitorarli in modo efficace.

Vuoi più esercizi?

  • 30 esercizi sulle autorizzazioni Linux per amministratori di sistema

Se sei curioso di conoscere l'amministrazione del sistema Linux, abbiamo un'intera sezione dedicata ad essa sul sito web.


Linux
  1. 12 Esempi di comandi IP per utenti Linux

  2. Esempi di comandi da 20 ps per monitorare i processi Linux

  3. Nozioni di base sui comandi di Linux:7 comandi per la gestione dei processi

  4. Suggerimenti per la riga di comando di Linux per aumentare la produttività

  5. comando Linux ps

Come KILL un processo su Linux

30 Esercizi sulle autorizzazioni Linux per amministratori di sistema

Esercitazione sui comandi Netstat di Linux per SysAdmins [40 esempi]

40 esempi utili di comando PS Linux per aspiranti amministratori di sistema

Comandi per la gestione dei processi in Linux

UNIX / Linux:7 esempi pratici di comandi PS per il monitoraggio dei processi