Questa pagina spiega come gestire i processi in esecuzione sul sistema utilizzando Webmin.
Introduzione ai processi
Ogni programma, processo o comando in esecuzione su un sistema Linux è un processo. In qualsiasi momento, ci sono dozzine di processi in esecuzione sul sistema, alcuni per programmi con cui si interagisce graficamente, altri per comandi avviati al prompt della shell, altri per server in esecuzione in background e altri che eseguono attività di sistema. Ogni volta che digiti un comando come ls o vi al prompt della shell, viene creato un nuovo processo, solo per uscire non appena il suo lavoro è terminato.
Ogni processo è identificato da un ID univoco, noto come PID o ID processo. Ciascuno è di proprietà di un singolo utente ed è membro di più gruppi, che determinano i privilegi di cui dispone il processo. E ognuno ha una priorità (nota anche come il livello di Nizza), che controlla quanto tempo CPU il processo può utilizzare su un sistema occupato. Quasi ogni processo ha un genitore, che è il processo che lo ha avviato e da cui eredita proprietà, priorità e altre impostazioni.
Un processo verrà eseguito fino a quando non decide di uscire o fino a quando non viene interrotto da un segnale di un altro processo.
Il modulo Processi in esecuzione
Questo modulo può essere utilizzato per visualizzare, terminare, ridefinire le priorità ed eseguire i processi sul sistema. Quando lo si accede per la prima volta dalla categoria Sistema, la pagina principale mostrerà un albero di processi come mostrato di seguito.
Il modulo ha diversi modi di visualizzare tutti i processi sul tuo sistema, selezionabili dai link di visualizzazione nella parte superiore della pagina principale. Essi sono:
PID In questa modalità di visualizzazione ogni processo è mostrato rientrato sotto il suo genitore, formando un albero di tutti i processi in esecuzione sul tuo sistema. In cima allalbero cè il comando init, che viene avviato dal kernel al momento dellavvio e quindi non ha un genitore. Utente Questa modalità raggruppa i processi in base al loro proprietario. Può essere utile su sistemi con molti utenti per vedere a colpo docchio ciò che ogni utente sta eseguendo. Memoria In questa modalità, i processi sono ordinati in base alla quantità di memoria che stanno utilizzando, con quelli che utilizzano la maggior parte della memoria mostrati nella parte superiore della pagina. Lutilizzo della memoria da parte di un processo non è sempre indicativo della quantità di memoria che sta effettivamente utilizzando, perché i processi spesso condividono la memoria tra loro. Inoltre, la quantità totale e libera di memoria reale e virtuale sul sistema viene visualizzata sopra lelenco dei processi. CPU Questa modalità di visualizzazione ordina i processi in base allutilizzo corrente della CPU, con lutente più pesante che appare per primo. A volte il comando Webmin che genera la pagina verrà visualizzato nella parte superiore dellelenco, ma può essere tranquillamente ignorato. Le medie di carico del sistema verranno visualizzate nella parte superiore della pagina, per dare unidea di quanto sia stato occupato il sistema negli ultimi 1,5 e 10 minuti. Una media di 0 significa nessuna attività, 1 significa che la CPU è completamente utilizzata e qualsiasi valore superiore a 1 significa che ci sono più processi che vogliono eseguire rispetto a quelli per cui il sistema ha tempo di CPU.
Le opzioni Cerca ed Esegui servono rispettivamente per la ricerca di processi e per eseguirne di nuovi. Vedere le sezioni seguenti per maggiori dettagli.
Visualizzazione, eliminazione o ridefinizione della priorità di un processo
È possibile visualizzare i dettagli completi di qualsiasi processo in esecuzione facendo clic sulla sua voce di colonna ID processo in uno qualsiasi dei display nella pagina principale . Questo ti porterà alla pagina delle informazioni sul processo, mostrata in questo screenshot.
La pagina mostra tutte le informazioni disponibili sul processo, inclusa la sua riga di comando completa, il comando genitore e qualsiasi sottoprocesso. Puoi semplicemente accedere alla pagina delle informazioni per il genitore facendo clic sul suo comando, o alla pagina su uno qualsiasi dei sottoprocessi facendo clic sul suo ID processo. Un elenco di file aperti dal processo e delle connessioni di rete attualmente in uso possono essere visualizzati facendo clic sul pulsante File e connessioni.
Il processo può essere interrotto utilizzando un segnale TERM facendo clic sul pulsante Terminate Process. Poiché questo può essere ignorato da alcuni comandi, il pulsante Kill Process può essere utilizzato per inviare un segnale KILL se la terminazione non riesce. A meno che il processo non sia bloccato allinterno di una chiamata di sistema del kernel, è garantito che ucciderlo abbia successo.
È possibile inviare altri segnali selezionando il tipo di segnale accanto al pulsante Invia segnale prima di premerlo. Alcuni dei segnali più utili sono:
HUP Per molti processi server, questo segnale li farà rileggere i propri file di configurazione. STOP Sospende il processo finché non viene ricevuto un segnale CONT. CONT Riprende un processo che è stato sospeso da un segnale STOP.
La pagina delle informazioni può essere utilizzata anche per modificare il livello di gradevolezza di un processo in esecuzione, dandogli una priorità più alta o più bassa.Per modificare la priorità di un processo, selezionare un nuovo livello dallelenco * Livello piacevole *, quindi fare clic sul pulsante Cambia. Livelli più bassi significano priorità più elevate, quindi un processo con un buon livello di 10 otterrà più tempo CPU di uno con il livello 5.
Su un sistema con più utenti, processi a esecuzione prolungata che occupano molte Il tempo della CPU dovrebbe avere un livello più alto di Nizza in modo che non rallentino i processi che stanno interagendo con gli utenti. In alternativa, puoi accelerare un processo a scapito degli altri dandogli un livello di Nizza inferiore. È necessario fare attenzione quando si imposta un livello estremamente basso (come 20) poiché tutti gli altri processi potrebbero perdere tempo di CPU, rendendo il sistema non rispondente.
Ricerca di processi
Se hai un gran numero di processi in esecuzione sul tuo sistema e vuoi trovarne uno o più da uccidere o visualizzare, la funzione di ricerca del modulo Processo in esecuzione rende è facile. Per trovare i processi, segui questi passaggi:
- Nella pagina principale del modulo, fai clic sul collegamento Modalità di visualizzazione della ricerca. Questo ti porterà a un modulo di ricerca come mostrato nellimmagine sotto.
- Il modulo mostra diversi criteri per la ricerca dei processi, di cui puoi sceglierne uno selezionando il pulsante di opzione accanto. I criteri sono: Di proprietà dei processi di proprietà dellutente di cui inserisci il nome successivo a questa opzione verrà trovato. # * Corrispondenza Trova i processi il cui comando o gli argomenti contengono il testo immesso accanto a questa opzione. Utilizzo di più di Trova processi utilizzando una percentuale di tempo CPU superiore a quella specificata. Utilizzo del file system Processi la cui directory corrente è attiva il filesystem scelto o si sta accedendo a qualsiasi file su di esso verrà trovato Utile se non lo si può on smontare un filesystem perché è occupato. Utilizzo di file Trova i processi che hanno il file inserito aperto per la lettura o la scrittura. Se si entra in una directory, verrà trovato qualsiasi processo che lo abbia come directory corrente. Utilizzo della porta Trova i processi che stanno inviando, ricevendo o ascoltando il traffico di rete sulla porta immessa utilizzando il protocollo scelto. Utile se si conosce il numero di porta su cui un server è in ascolto e si desidera trovare il processo del server. Utilizzo dellindirizzo Trova i processi che hanno una connessione di rete aperta allindirizzo immesso o che sono in ascolto su quellindirizzo se è per uninterfaccia del sistema.
- Per filtrare i processi di ricerca Webmin dai risultati, selezionare lopzione Ignora processi di ricerca nei risultati. Ciò può essere utile durante la ricerca in base allutilizzo della CPU, poiché i processi Webmin consumano molto tempo della CPU.
- Dopo aver selezionato i criteri di ricerca, fare clic sul pulsante Cerca. Eventuali processi di abbinamento verranno visualizzati sotto il modulo.
- Se desideri visualizzare ulteriori informazioni su un processo, modificarne la priorità o inviargli un segnale da solo, fai clic sul suo ID processo nei risultati.
- Per terminare tutti i processi corrispondenti, fare clic sul pulsante Termina processi o Termina processi. È inoltre possibile inviare qualsiasi segnale a tutti i processi selezionandolo dallelenco accanto al pulsante * Invia segnale *. Verrà visualizzata una pagina che elenca ogni ID processo e se è stato segnalato o interrotto correttamente.
Esecuzione di un processo
Il modulo può anche essere usato per eseguire semplici comandi, sia in primo piano in modo che il loro output sia visualizzato, sia in background come demoni. Questo può essere utile se vuoi semplicemente eseguire un comando senza dover accedere tramite telnet o SSH (o se un firewall impedisce un accesso telnet o SSH). I passaggi da seguire sono:
- Nella pagina principale del modulo, fare clic sul collegamento Esegui accanto alle opzioni della modalità di visualizzazione. Questo ti porterà al modulo per iniziare un nuovo processo.
- Immettere il comando che si desidera eseguire nel campo * Comando da eseguire *. Operatori di shell e caratteri speciali come;, & lt, > e & & può essere utilizzato.
- Se lesecuzione del comando richiede molto tempo, puoi impostare lopzione Modalità di esecuzione su Esegui in background per fare in modo che Webmin lo metta automaticamente in background. Tuttavia, se si desidera visualizzare loutput del comando, lasciare lopzione impostata su Attendi fino al completamento.
- Immettere qualsiasi input che si desidera fornire al comando nel campo * Input to command *.
- Fare clic sul pulsante Esegui per eseguirlo. Se è stata selezionata lopzione Attendi fino al completamento, verrà visualizzato qualsiasi output del comando.
Esegui comando
Opzioni di controllo dellaccesso al modulo
Per impostazione predefinita, qualsiasi utente Webmin con accesso a questo modulo può gestire tutti i processi in esecuzione sul sistema, come se avesse effettuato laccesso come root. Tuttavia, utilizzando il modulo Utenti e gruppi è possibile limitare laccesso di un utente in modo che possa solo uccidere o riordinare i processi di proprietà di un particolare utente Unix.È anche possibile limitare un utente alla modalità di sola lettura, permettendogli di vedere solo i processi senza modificarli in alcun modo o avviarne di nuovi.
Si dovrebbe leggere prima il capitolo 52 per saperne di più sul controllo dellaccesso al modulo e su come concedere a un utente laccesso al modulo Processi in esecuzione. Fatto ciò, per modificare laccesso di un utente Webmin a questo modulo, i passaggi da seguire sono:
- Nel modulo Utenti Webmin, fare clic su Processi in esecuzione accanto al nome dellutente o gruppo che si desidera limitare.
- Modificare il campo Può modificare la configurazione del modulo? su No.
- Per dare allutente Webmin laccesso solo ai processi di proprietà di un particolare utente Unix, inserisci il nome utente nel campo * Gestisci processi come utente *. Se gli utenti Unix e Webmin hanno lo stesso nome, puoi invece selezionare Utente Webmin corrente. Ciò può essere utile quando si configura il controllo dellaccesso al modulo per un gruppo in cui si desidera membro per poter gestire solo i propri processi.
- Per mettere lutente in modalità di sola lettura, impostare i campi * Può uccidere e rinominare i processi? * e Può eseguire comandi? * su * No. Se questo è fatto, non importa quale nome utente immetti nel passaggio 7 perché non è possibile eseguire la gestione del processo.
- Fare clic sul pulsante Salva per attivare le modifiche.
Per limitare i processi che un utente Webmin può gestire, il codice del modulo passa semplicemente allesecuzione come lutente Unix specificato nel passaggio 4. Poiché un utente Unix non può terminare o assegnare priorità a nessun processo che non possiede, cambiare utente in questo modo fa sì che il sistema operativo imponga automaticamente il controllo dellaccesso al processo per Webmin.
Altri sistemi operativi
Poiché i processi esistono su tutte le versioni di Unix con quasi attributi identici, questo modulo appare quasi esattamente lo stesso su tutti i sistemi operativi supportati.
Quando si visualizzano informazioni dettagliate su un processo, potrebbero essere disponibili informazioni diverse su altri sistemi operativi. Anche la gamma dei livelli piacevoli può essere diversa, ma livelli inferiori significano comunque una priorità più alta e viceversa.
Quando si cerca un processo, i criteri Using filesystem, Using file o Using port potrebbero non essere disponibili. Queste opzioni dipendono dai comandi fuser e lsof che non sono disponibili o installati per impostazione predefinita su tutti i sistemi.