Questa pagina spiega come gestire i Processi in esecuzione sul tuo sistema utilizzando Webmin.
Contenuti
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 tuo sistema, alcuni per programmi con cui stai interagendo 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 piacevole), che controlla quanto tempo di CPU il processo può utilizzare su un sistema occupato. Quasi ogni processo ha un genitore, che è il processo che lo ha avviato e dal quale eredita la proprietà, la priorità e altre impostazioni.
Un processo verrà eseguito finché non decide di uscire o finché non viene ucciso da un segnale proveniente da un altro processo.
Il modulo Processi in esecuzione
Questo modulo può essere utilizzato per visualizzare, uccidere, assegnare nuovamente la priorità ed eseguire processi sul sistema. Quando lo inserisci per la prima volta dalla categoria Sistema, la pagina principale visualizzerà un albero di processi come mostrato di seguito.
Visualizzazione dell'albero del modulo Processi in esecuzioneIl modulo ha diversi modi per visualizzare tutti i processi sul tuo sistema, selezionabili dal Display link nella parte superiore della pagina principale. Sono:
- PID
- In questa modalità di visualizzazione ogni processo viene mostrato rientrato sotto il suo genitore, formando un albero di tutti i processi in esecuzione sul tuo sistema. In cima all'albero c'è il comando init, che viene avviato dal kernel all'avvio 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 d'occhio cosa sta eseguendo ogni utente.
- Memoria
- In questa modalità, i processi sono ordinati in base alla quantità di memoria che stanno utilizzando, con quelli che utilizzano più memoria mostrati nella parte superiore della pagina. L'utilizzo della memoria 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 tuo sistema viene visualizzata sopra l'elenco dei processi.
- CPU
- Questa modalità di visualizzazione ordina i processi in base all'utilizzo corrente della CPU, con l'utente più pesante che appare per primo. A volte il comando Webmin che genera la pagina apparirà in cima all'elenco, ma può essere tranquillamente ignorato. Le medie di carico del sistema verranno visualizzate nella parte superiore della pagina, per dare un'idea 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 da eseguire di quanti il sistema abbia tempo di CPU.
La Ricerca e Esegui le opzioni sono rispettivamente per la ricerca di processi e l'esecuzione di nuovi. Vedere le sezioni seguenti per maggiori dettagli.
Visualizzazione, eliminazione o ridefinizione della priorità di un processo
Puoi vedere i dettagli completi di qualsiasi processo in esecuzione facendo clic sul relativo ID processo voce di colonna in uno qualsiasi dei display della pagina principale. Questo ti porterà alla pagina delle informazioni sul processo, mostrata in questo screenshot.
Informazioni dettagliate su un processoLa pagina visualizza tutte le informazioni disponibili sul processo, inclusa la riga di comando completa, il comando principale e qualsiasi processo secondario. Puoi semplicemente accedere alla pagina delle informazioni per il genitore facendo clic sul suo comando o alla pagina su uno qualsiasi dei processi secondari facendo clic sul suo ID processo. È possibile visualizzare un elenco dei file aperti dal processo e delle connessioni di rete attualmente in uso facendo clic su File e connessioni pulsante.
Il processo può essere interrotto utilizzando un segnale TERM facendo clic su Termina processo pulsante. Poiché questo può essere ignorato da alcuni comandi, il Processo di uccisione il pulsante può essere utilizzato per inviare un segnale KILL se la terminazione non riesce. A meno che il processo non sia bloccato all'interno di una chiamata di sistema del kernel, è garantito che l'uccisione abbia successo.
È possibile inviare altri segnali selezionando il tipo di segnale accanto a Invia segnale pulsante prima di premerlo. Alcuni dei segnali più utili sono:
- HUP
- Per molti processi server, questo segnale farà rileggere i propri file di configurazione.
- FERMA
- Sospende il processo fino a un CONT segnale ricevuto.
- CONT
- Riprende un processo che è stato sospeso da un STOP segnale.
La pagina delle informazioni può essere utilizzata anche per modificare il livello gradevole di un processo in esecuzione, assegnandogli una priorità più alta o più bassa. Per modificare una priorità dei processi, seleziona un nuovo livello dall'elenco *Livello buono*, quindi fai clic su Cambia pulsante. Livelli più bassi significano priorità più elevate, quindi un processo con un buon livello 10 otterrà più tempo di CPU rispetto a uno con livello 5.
In un sistema con più utenti, i processi di lunga durata che richiedono molto tempo della CPU dovrebbero ricevere un livello più alto in modo che non rallentino i processi che interagiscono con gli utenti. In alternativa, puoi accelerare un processo a spese di altri assegnandogli un livello piacevole più basso. Dovresti fare attenzione quando imposti un livello estremamente basso (come 20) poiché tutti gli altri processi potrebbero perdere il tempo della 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 lo rende facile. Per trovare i processi, segui questi passaggi :
- Nella pagina principale del modulo, fai clic su Cerca collegamento alla modalità di visualizzazione. Questo ti porterà a un modulo di ricerca come mostrato nello screenshot qui sotto.
- Il modulo mostra diversi criteri per la ricerca dei processi, di cui puoi sceglierne uno selezionando il pulsante di opzione accanto ad esso. I criteri sono:
- Di proprietà di
- Verranno trovati i processi di proprietà dell'utente il cui nome immetti accanto a questa opzione. #* Corrispondenza Trova i processi il cui comando o argomenti contiene il testo immesso accanto a questa opzione.
- Usando più di
- Trova i processi che utilizzano una percentuale di tempo CPU superiore a quella specificata.
- Utilizzo del filesystem
- Verranno trovati i processi la cui directory corrente è sul filesystem scelto o stanno accedendo a qualsiasi file su di esso. Utile se non puoi smontare un filesystem perché è occupato.
- Utilizzo di un file
- Trova i processi che hanno il file inserito aperto per la lettura o la scrittura. Se inserisci una directory, verrà trovato qualsiasi processo che la abbia come directory corrente.
- Utilizzo della porta
- Trova i processi che stanno inviando, ricevendo o ascoltando il traffico di rete sulla porta inserita utilizzando il protocollo scelto. Utile se si conosce il numero di porta su cui è in ascolto un server e si desidera trovare il processo del server.
- Utilizzo dell'indirizzo
- Trova i processi che hanno una connessione di rete aperta all'indirizzo inserito o sono in ascolto su quell'indirizzo se si tratta di un'interfaccia sul tuo sistema.
- Per filtrare i processi di ricerca Webmin dai risultati, seleziona Ignora processi di ricerca nei risultati opzione. Questo può essere utile durante la ricerca in base all'utilizzo della CPU, poiché i processi Webmin consumano molto tempo della CPU.
- Dopo aver selezionato i criteri di ricerca, fare clic su Cerca pulsante. Eventuali processi di corrispondenza 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, fai clic su Termina processi o Processi di eliminazione pulsante. Puoi anche inviare qualsiasi segnale a tutti i processi selezionandolo dall'elenco accanto al pulsante *Invia segnale*. Verrà visualizzata una pagina che elenca ogni ID processo e se è stato segnalato o terminato con successo.
Esecuzione di un processo
Il modulo può essere utilizzato anche per eseguire comandi semplici, sia in primo piano in modo che il loro output venga 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, fai clic su Esegui collegamento 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*. È possibile utilizzare operatori shell e caratteri speciali come ;, < ,> e &&.
- Se il comando richiede molto tempo per essere eseguito, puoi impostare la Modalità di esecuzione opzione per Eseguire in background per fare in modo che Webmin lo metta automaticamente in background. Tuttavia, se vuoi vedere l'output del comando, lascia l'opzione impostata su Attendere fino al completamento .
- Immettere qualsiasi input che si desidera inviare al comando nel campo *Input to command*.
- Fai clic su Esegui pulsante per eseguirlo. Se Attendere fino al completamento è stata selezionata l'opzione, verrà visualizzato qualsiasi output del comando.
- Esegui comando
Opzioni di controllo dell'accesso al modulo
Per impostazione predefinita, qualsiasi utente Webmin con accesso a questo modulo può gestire tutti i processi in esecuzione sul sistema, come se fosse loggato come root. Tuttavia, utilizzando il modulo Utenti e gruppi è possibile limitare l'accesso di un utente in modo che possa solo uccidere o rielaborare processi di proprietà di un particolare utente Unix. È anche possibile limitare un utente alla modalità di sola lettura, consentendogli di vedere solo i processi non modificandoli in alcun modo o avviandone di nuovi.
Dovresti leggere prima il capitolo 52 per saperne di più sul controllo dell'accesso ai moduli e su come concedere a un utente l'accesso ai Processi in esecuzione modulo. Fatto ciò, per modificare l'accesso di un utente Webmin a questo modulo, i passaggi da seguire sono:
- Nel modulo Utenti Webmin, fai clic su Processi in esecuzione accanto al nome dell'utente o del gruppo che desideri limitare.
- Modificare Puoi modificare la configurazione del modulo? campo su No .
- Per consentire all'utente Webmin di accedere solo a quei processi di proprietà di un particolare utente Unix, inserire il nome utente nel campo *Gestisci processi come utente*. Se gli utenti Unix e Webmin hanno lo stesso nome, puoi selezionare Utente Webmin corrente invece. Questo può essere utile quando si imposta il controllo dell'accesso al modulo per un gruppo in cui si desidera che ogni membro sia in grado di gestire solo i propri processi.
- Per mettere l'utente in modalità di sola lettura, impostare *Can kill and renice process?* e Can run command? *campi a *No . In tal caso, non importa quale nome utente immetti nel passaggio 7 perché non è possibile eseguire la gestione del processo.
- Fai clic su Salva pulsante per attivare le modifiche.
Per limitare i processi che un utente Webmin può gestire, il codice del modulo passa semplicemente all'esecuzione come l'utente Unix specificato nel passaggio 4. Poiché un utente Unix non può uccidere o assegnare nuovamente la priorità a qualsiasi processo che non possiede, cambiare utente in questo modo provoca il sistema operativo per imporre automaticamente il controllo di accesso ai processi per Webmin.
Altri sistemi operativi
Poiché i processi esistono su tutte le versioni di Unix con attributi quasi 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 di livelli piacevoli può essere diversa, ma livelli più bassi significano comunque una priorità più alta e viceversa.
Durante la ricerca di un processo, Utilizzo del filesystem , Utilizzo di un file o Utilizzo della porta i criteri 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.