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?
Processi in background e in primo piano
- Domanda 8 :quale sintassi viene utilizzata su Linux per eseguire un processo in background?
- Domanda 9 :qual è il termine che descrive un processo avviato in una shell di terminale?
- 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?
Segnali e processi
- Domanda 14 :come definiresti un segnale quando si tratta di processi?
- Domanda 15 :quale segnale viene utilizzato su Linux per arrestare delicatamente un processo?
- Domanda 16 :d'altra parte, diciamo che vuoi terminare un processo immediatamente, quale segnale useresti per quello? Qual è il numero di questo segnale?
- 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?
- Domanda 19 :a priori, puoi fornire altri segnali utilizzati sui sistemi Linux?
Comandi di processi avanzati
- Domanda 20 :quale comando viene utilizzato su Linux per elencare tutti i processi con uno schema specifico?
- Domanda 21 :quale comando useresti per uccidere facilmente (SIGKILL) tutti i processi che iniziano con "fire" ?
- Domanda 22 :su Linux, quale comando viene utilizzato per eseguire un processo con un livello di priorità personalizzato?
- Domanda 23 :un processo ha un buon livello di 19, utilizzerà quante più risorse possibile?
- Domanda 24 :qual è il bel livello predefinito quando i processi vengono creati su Linux?
- Domanda 25 :come utente non sudo, puoi creare un processo con un buon livello di -5?
- Domanda 26 :quale comando può essere utilizzato per impostare la priorità di un processo in esecuzione su Linux?
Processi di monitoraggio
- Domanda 27 :quale comando può essere utilizzato su Linux per monitorare i processi in tempo reale?
- Domanda 28 :quale scorciatoia può essere utilizzata nel comando in alto per modificare la frequenza di aggiornamento?
- Domanda 29 :quale opzione può essere utilizzata per eseguire il comando top per un numero personalizzato di iterazioni?
- Domanda 30 :sei a conoscenza di altre soluzioni per monitorare efficacemente i processi Linux?
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.