processes unix process control
Processhantering i Unix:
I Unix körs alla instruktioner utanför kärnan i samband med en process.
En process är en sekvens av instruktioner och varje process har ett block av kontrollerade data associerade med sig. Processer kan manipuleras på ett sätt som liknar hur filer kan manipuleras.
Till exempel, som 'ls' är kan användas för att se listan över filer, kan 'ps' användas för att se listan över processer.
Unix Video # 23:
I den här handledningen kommer vi att beskriva vilken processrelaterad information som lagras och också beskriva några kommandon som används för att hantera processer. Vi kommer också att ge en kort beskrivning av hur kommandoskript kan felsökas.
Vad du kommer att lära dig:
Unix-processinformation
Processtabellen innehåller information om alla processer som körs för närvarande. Huvudsyftet med denna tabell är att hantera alla löpande processer effektivt.
c ++ praktiska frågor och svar pdf
Notera: Som ett multitasking- och fleranvändar-operativsystem kommer Unix att ha många processer som körs samtidigt.
Tabellen innehåller information som:
- Process-ID
- Föräldra-process-ID
- Processernas status
- CPU-användning
Processer i Unix går igenom olika tillstånd beroende på olika omständigheter. Tillståndsändringarna kan utlösas av huruvida en process måste vänta på att en läs- eller skrivoperation ska slutföras, eller när en annan mer brådskande process måste ges en chans att köra.
Processkontrollkommandon
Det finns ett antal kommandon som är tillgängliga för att granska och manipulera processer. Kommandot 'ps' kan användas för att visa processstatusinformation.
Kommando | ps - ger information om alla processer som för närvarande körs. |
---|---|
Vanlig syntax | $ ps (ALTERNATIV) |
Exempel 1 | $ ps Ger information om processen inklusive PID, terminalnamn, tidpunkt för skapande och namn på processerna. |
Som diskuterats i en tidigare handledning kan processer klassificeras som förgrund, bakgrund eller demon. När ett kommando körs från terminalen går det normalt i förgrunden. För att köra en process i bakgrunden kan knappen '&' i slutet av kommandot användas.
Exempel:
$ grep “how” file1 > file2 &
Detta kommando söker efter raderna som innehåller mönstret 'hur' och lagrar utdata i fil2. Om fil 1 är ganska stor kanske vi vill fortsätta med andra åtgärder och köra kommandot i bakgrunden. Med '&' i slutet kommer detta kommando att köras som en process i bakgrunden.
Det är möjligt att avbryta en förgrundsprocess genom att använda kommandot ‘^ Z’. Detta kommando flyttar den aktuella förgrundsprocessen till ett avstängt tillstånd i bakgrunden. Därifrån kan processen antingen tryckas för att återupptas i bakgrunden med kommandot 'bg', eller så kan den återföras till förgrunden med kommandot 'fg'.
Varje process är också förknippad med en prioritet. Detta används för att säkerställa att operativsystemet kan fördela tid åt olika bearbetningsuppgifter på rätt sätt. Kommandot 'trevligt' kan användas för att minska prioriteten för en process och därmed vara 'trevligt' för de andra processerna, dvs.
$ trevligt
Den här raden kör det angivna kommandot med lägre prioritet - som standard kommer prioriteten att minskas med 10. Kommandot tar också en parameter som kan användas för att använda en annan nivå av 'trevlighet'.
Exempel:
$ nice -20 ls
Detta kommando kör “ls” med prioriteten reducerad med 20.
Det är också möjligt att öka prioriteten med en negativ ”trevlighet”. Detta behöver dock tillstånd från superanvändare.
När en terminal eller inloggningssession stängs skickar den SIGHUP-signalen till barnets processer. Som standard kommer den här signalen att barnprocesserna avslutas. Kommandot ”nohup” kan användas för att låta kommandon fortsätta att köras även när inloggningssessionen avslutas.
Exempel:
$ nohup soft file1 > file2
Med det här kommandot fortsätter sortering av file1 och sparar i file2-processen även om vi har loggat ut från systemet.
Kommandot ”kill” kan användas för att avsluta alla processer beroende på behörigheter.
Exempel:
$ kill (options)
Detta kommando avslutar en process med process-id. PID för en process kan erhållas med kommandot 'ps'.
Detta 'at' -kommando används för att utföra kommandon vid ett visst datum och tid i framtiden.
Exempel:
$ at 8pm sort file1>file2
Unix-felsökning
Unix tillhandahåller ett antal mekanismer för att hitta fel i dina kommandoskript. Dessa mekanismer kan användas för att se ett spår av vad som körs, dvs den ordning i vilken kommandon körs. Spårningen kan användas för att förstå och verifiera skriptets logik och kontrollflöde.
=> set -v
ordentligt läge: Att ställa in det här alternativet innan du kör ett kommando säkerställer att kommandot som kommer att köras skrivs ut till stdout innan det faktiskt körs.
=> set -x
exekveringsspårningsläge: Om du ställer in det här alternativet visas varje kommando när det körs tillsammans med dess argument.
=> ställa in -n
no-exec-läge: Att ställa in detta alternativ visar eventuella fel utan att egentligen köra några kommandon.
Kolla in vår kommande handledning för att lära dig mer om Advanced Shell Scripting.
PREV-handledning | NÄSTA självstudie
Rekommenderad läsning
- Unix behandlar kontrollkommandon som Ps och Top (del C)
- Unix-kommandon: Grundläggande och avancerade Unix-kommandon med exempel
- Unix textbehandlingskommandon: Unix-filter med exempel
- Handledning för Unix Pipes: Rör i Unix-programmering
- Mer Unix-filter och Awk, Sed-kommandon i textbehandling
- Kommandoradsargument i Unix Shell-skript med exempel
- UNIX-handledning för nybörjare (20+ djupgående Unix-träningsvideor)
- Hur man jämför två filer i Unix: kommandon för filjämförelse