Deze pagina legt uit hoe u lopende processen op uw systeem kunt beheren met Webmin.
Inleiding tot processen
Elk programma, proces of commando dat op een Linux-systeem draait, is een proces. Op elk moment draaien er tientallen processen op uw systeem, sommige voor programmas waarmee u grafisch communiceert, sommige voor opdrachten die u bij een shell-prompt hebt gestart, sommige voor servers die op de achtergrond draaien en sommige die systeemtaken uitvoeren. Elke keer dat u een commando zoals ls of vi typt bij de shell-prompt, wordt een nieuw proces aangemaakt, dat alleen wordt afgesloten zodra de taak is voltooid.
Elk proces wordt geïdentificeerd door een unieke ID, bekend als de PID of proces-ID. Elk is eigendom van een enkele gebruiker en is lid van meerdere groepen, die de rechten bepalen die het proces heeft. En elk heeft een prioriteit (ook bekend als het mooie niveau), die bepaalt hoeveel CPU-tijd het proces kan gebruiken op een druk systeem. Bijna elk proces heeft een ouder, het proces waarmee het is begonnen en waarvan het eigendom, prioriteit en andere instellingen erft.
Een proces zal worden uitgevoerd totdat het besluit om af te sluiten, of totdat het wordt gedood door een signaal van een ander proces.
De lopende processen module
Deze module kan worden gebruikt om processen op uw systeem te bekijken, af te breken, opnieuw te prioriteren en uit te voeren. Wanneer u het voor de eerste keer invoert vanuit de categorie Systeem, zal de hoofdpagina een boom van processen weergeven zoals hieronder getoond.
De module heeft verschillende manieren om alle processen op uw systeem te bekijken, te selecteren via de Toon links bovenaan de hoofdpagina. Dit zijn:
PID In deze weergavemodus wordt elk proces ingesprongen onder de ouder getoond, waardoor een boomstructuur wordt gevormd van alle processen die op uw systeem worden uitgevoerd. Bovenaan de boom staat het init commando, dat wordt gestart door de kernel tijdens het opstarten en dus geen ouder heeft. Gebruiker Deze modus groepeert processen op basis van hun eigenaar. Het kan handig zijn op systemen met veel gebruikers om in één oogopslag te zien wat elke gebruiker gebruikt. Geheugen In deze modus worden processen gesorteerd op de hoeveelheid geheugen die ze gebruiken, waarbij de processen die het meeste geheugen gebruiken bovenaan de pagina worden weergegeven. Het geheugengebruik van een proces is niet altijd een indicatie van de hoeveelheid geheugen die het werkelijk gebruikt, omdat processen vaak geheugen met elkaar delen. Bovendien wordt de totale en vrije hoeveelheid echt en virtueel geheugen op uw systeem weergegeven boven de proceslijst. CPU In deze weergavemodus worden processen gerangschikt op basis van hun huidige CPU-gebruik, waarbij de zwaarste gebruiker als eerste verschijnt. Soms verschijnt het Webmin-commando dat de pagina genereert bovenaan de lijst, maar het kan veilig worden genegeerd. De gemiddelde systeembelasting wordt bovenaan de pagina weergegeven om een idee te geven van hoe druk het systeem de afgelopen 1,5 en 10 minuten is geweest. Een gemiddelde van 0 betekent helemaal geen activiteit, 1 betekent dat de CPU volledig wordt benut en alles boven de 1 betekent dat er meer processen willen worden uitgevoerd dan waarvoor het systeem CPU-tijd heeft.
De opties Zoeken en Uitvoeren zijn bedoeld om respectievelijk naar processen te zoeken en nieuwe uit te voeren. Zie de secties hieronder voor meer details.
Een proces bekijken, beëindigen of opnieuw prioriteit geven
U kunt de volledige details van elk lopend proces zien door op de kolom Proces-ID te klikken in een van de displays op de hoofdpagina . Hiermee gaat u naar de procesinformatiepagina, weergegeven in deze schermafbeelding.
De pagina toont alle beschikbare informatie over het proces, inclusief de volledige opdrachtregel, bovenliggende opdracht en eventuele subprocessen. U kunt gewoon naar de informatiepagina voor de ouder door op zijn commando te klikken, of naar de pagina op een van de subprocessen door op zijn proces-ID te klikken. Een lijst met bestanden die het proces open heeft en netwerkverbindingen die het momenteel gebruikt, kan worden bekeken door op de knop Bestanden en verbindingen te klikken.
Het proces kan worden gestopt met behulp van een TERM-signaal door op de knop Proces beëindigen te klikken. Omdat dit door sommige opdrachten kan worden genegeerd, kan de knop Kill Process worden gebruikt om een KILL-signaal te verzenden als de beëindiging mislukt. Tenzij het proces wordt vastgehouden in een kernelsysteemaanroep, is het doden gegarandeerd succesvol.
Andere signalen kunnen worden verzonden door het type signaal naast de knop Signaal verzenden te selecteren voordat u erop drukt. Enkele van de meer bruikbare signalen zijn:
HUP Voor veel serverprocessen zorgt dit signaal ervoor dat ze hun configuratiebestanden opnieuw lezen. STOP Onderbreekt het proces totdat een CONT-signaal wordt ontvangen. CONT Hervat een proces dat is onderbroken door een STOP-signaal.
De informatiepagina kan ook worden gebruikt om het mooie niveau van een lopend proces te wijzigen, door het een hogere of lagere prioriteit te geven.Om de prioriteit van een proces te wijzigen, selecteert u een nieuw niveau uit de lijst * Mooi niveau * en klikt u op de knop Wijzigen. Lagere niveaus betekenen hogere prioriteiten, dus een proces met een mooi niveau van 10 krijgt meer CPU-tijd dan een met niveau 5.
Op een systeem met meerdere gebruikers, langlopende processen die veel tijd in beslag nemen De CPU-tijd moet een hoger mooi niveau krijgen, zodat ze processen die met gebruikers communiceren niet vertragen. Als alternatief kun je een proces versnellen ten koste van anderen door het een lager mooi niveau te geven. U moet voorzichtig zijn bij het instellen van een extreem laag niveau (zoals 20), aangezien alle andere processen mogelijk te weinig CPU-tijd hebben, waardoor het systeem niet meer reageert.
Zoeken naar processen
Als je een groot aantal processen op je systeem hebt draaien en je wilt er een of meer vinden om af te breken of te bekijken, dan zorgt de zoekfunctie van de Running Process module ervoor dat Volg deze stappen om processen te vinden:
- Klik op de hoofdpagina van de module op de link Zoekweergavemodus. Dit brengt je naar een zoekformulier zoals weergegeven in de schermafbeelding hieronder.
- Het formulier toont verschillende criteria voor het vinden van processen, waarvan u er een kunt kiezen door het keuzerondje ernaast te selecteren. De criteria zijn: Eigendom van Processen die eigendom zijn van de gebruiker wiens naam u hierna invoert naar deze optie zal worden gevonden. # * Matching Vindt processen waarvan het commando of de argumenten de tekst bevatten die u naast deze optie invoert. Gebruik meer dan Vindt processen die meer dan het gespecificeerde percentage CPU-tijd gebruiken. Gebruik bestandssysteemprocessen waarvan de huidige directory is ingeschakeld het gekozen bestandssysteem of een bestand erop openen zal worden gevonden. Handig als je dat kunt ot een bestandssysteem niet ontkoppelen omdat het bezet is. Bestand gebruiken Vindt processen waarbij het ingevoerde bestand is geopend voor lezen of schrijven. Als u een directory invoert, wordt elk proces gevonden dat deze als de huidige directory heeft. Poort gebruiken Vindt processen die netwerkverkeer verzenden, ontvangen of luisteren op de ingevoerde poort met behulp van het gekozen protocol. Handig als je het poortnummer weet waar een server naar luistert en het serverproces wilt vinden. Adres gebruiken Vindt processen die een netwerkverbinding hebben die openstaat voor het ingevoerde adres, of die naar dat adres luisteren als het voor een interface op uw systeem is.
- Om de Webmin-zoekprocessen uit de resultaten te filteren, selecteert u de optie Zoekprocessen negeren in resultaat. Dit kan handig zijn bij het zoeken op CPU-gebruik, aangezien de Webmin-processen veel CPU-tijd in beslag nemen.
- Nadat u de zoekcriteria heeft geselecteerd, klikt u op de knop Zoeken. Eventuele overeenkomende processen worden onder het formulier weergegeven.
- Als u aanvullende informatie over een proces wilt zien, de prioriteit ervan wilt wijzigen of het alleen een signaal wilt sturen, klikt u op de proces-ID in de resultaten.
- Om alle overeenkomende processen te beëindigen, klikt u op de knop Processen beëindigen of Processen beëindigen. U kunt ook elk signaal naar alle processen sturen door het te selecteren in de lijst naast de knop * Signaal verzenden *. Er wordt een pagina weergegeven met elk proces-ID en of deze succesvol is gesignaleerd of beëindigd.
Een proces uitvoeren
De module kan ook worden gebruikt om eenvoudige commandos uit te voeren, hetzij op de voorgrond zodat hun uitvoer wordt weergegeven, of op de achtergrond als daemons. Dit kan handig zijn als u gewoon een commando wilt uitvoeren zonder in te loggen via telnet of SSH (of als een firewall een telnet- of SSH-login verhindert). De te volgen stappen zijn:
- Klik op de hoofdpagina van de module op de link Uitvoeren naast de opties voor de weergavemodus. Hiermee gaat u naar het formulier voor het starten van een nieuw proces.
- Typ het commando dat u wilt uitvoeren in het veld * Command to run *. Shell-operators en speciale tekens zoals;, & lt, > en & & kan worden gebruikt.
- Als het commando iets is dat lang duurt om uit te voeren, kunt u de optie Uitvoermodus instellen op Uitvoeren op achtergrond om Webmin het automatisch op de achtergrond te laten plaatsen. Als u echter de uitvoer van de opdracht wilt zien, laat u de optie ingesteld op Wacht tot voltooid.
- Voer elke invoer die u aan het commando wilt invoeren in het veld * Invoer naar commando * in.
- Klik op de knop Uitvoeren om het uit te voeren. Als de optie Wacht tot voltooid is geselecteerd, wordt elke uitvoer van de opdracht weergegeven.
Opdracht uitvoeren
Opties voor toegangscontrole van modules
Standaard kan elke Webmin-gebruiker met toegang tot deze module alle lopende processen beheren op het systeem, alsof hij was ingelogd als root. Door de module Gebruikers en groepen te gebruiken, kunt u de toegang van een gebruiker echter beperken, zodat hij alleen processen van een bepaalde Unix-gebruiker kan doden of opnieuw kan bewerken.Het is ook mogelijk om een gebruiker te beperken tot de alleen-lezen modus, waardoor hij alleen processen kan zien door ze op geen enkele manier te wijzigen of nieuwe te starten.
U dient eerst hoofdstuk 52 te lezen om meer te weten te komen over moduletoegangscontrole en hoe u een gebruiker toegang verleent tot de module Actieve processen. Zodra dat is gebeurd, zijn de volgende stappen om de toegang van een Webmin-gebruiker tot deze module te wijzigen:
- Klik in de Webmin Users-module op Running Processes naast de naam van de gebruiker of groep die u wilt beperken.
- Wijzig het veld Kan moduleconfiguratie bewerken? in Nee.
- Om de Webmin-gebruiker alleen toegang te geven tot die processen die eigendom zijn van een bepaalde Unix-gebruiker, voer de gebruikersnaam in het veld * Beheer processen als gebruiker * in. Als de Unix- en Webmin-gebruikers dezelfde naam hebben, kunt u in plaats daarvan Huidige Webmin-gebruiker selecteren. Dit kan handig zijn bij het instellen van moduletoegangscontrole voor een groep waarin u elke lid om alleen zijn eigen processen te kunnen beheren.
- Om de gebruiker in de alleen-lezen modus te zetten, stelt u de velden * Kan processen doden en hernoemen? * en Kan opdrachten uitvoeren? * in op * Nee. dit is gedaan, het maakt eigenlijk niet uit welke gebruikersnaam u in stap 7 invoert, omdat er geen procesbeheer kan worden gedaan.
- Klik op de knop Opslaan om uw wijzigingen te activeren.
Om de processen te beperken die een Webmin-gebruiker kan beheren, schakelt de modulecode eenvoudig over naar uitvoering zoals de Unix-gebruiker gespecificeerd in stap 4. Omdat een Unix-gebruiker geen enkel proces kan doden of opnieuw prioriteit kan geven die hij niet bezit, zorgt het wisselen van gebruiker op deze manier ervoor dat het besturingssysteem automatisch procestoegangscontrole afdwingt voor Webmin.
Andere besturingssystemen
Omdat er processen bestaan op alle versies van Unix met bijna identieke attributen, deze module verschijnt bijna exact hetzelfde op alle ondersteunde besturingssystemen.
Wanneer u gedetailleerde informatie over een proces bekijkt, kan er andere informatie beschikbaar zijn op andere besturingssystemen. De reeks leuke niveaus kan ook verschillen, maar lagere niveaus betekenen nog steeds een hogere prioriteit en vice versa.
Bij het zoeken naar een proces is het mogelijk dat de criteria Bestandssysteem gebruiken, Bestand gebruiken of Poort gebruiken niet beschikbaar zijn. Deze opties zijn afhankelijk van de fuser- en lsof-opdrachten die niet voor alle systemen beschikbaar of standaard geïnstalleerd zijn.