processes unix process control
Prosessadministrasjon i Unix:
I Unix blir alle instruksjonene utenfor kjernen utført i sammenheng med en prosess.
En prosess er en sekvens av instruksjoner, og hver prosess har en blokk med kontrollerte data tilknyttet. Prosesser kan manipuleres på en måte som ligner på hvordan filer kan manipuleres.
For eksempel, som ‘ls’ er kan brukes til å se listen over filer, ‘ps’ kan brukes til å se listen over prosesser.
Unix Video # 23:
I denne opplæringen vil vi dekke hvilken prosessrelatert informasjon som er lagret, og også beskrive noen kommandoer som brukes til å administrere prosesser. Vi vil også gi en kort beskrivelse av hvordan kommandoskript kan feilsøkes.
Hva du vil lære:
Unix prosessinformasjon
Prosesstabellen inneholder informasjon om alle prosessene som kjører for tiden. Hovedformålet med denne tabellen er å administrere alle løpende prosesser effektivt.
programvare for å kopiere dvd til datamaskin
Merk: Som et multitasking- og flerbruker-operativsystem vil Unix ha mange prosesser som kjører samtidig.
Tabellen inneholder informasjon som:
- Prosess-ID
- Foreldreprosess-ID
- Status for prosessene
- CPU bruk
Prosesser i Unix går gjennom forskjellige tilstander avhengig av ulike omstendigheter. Tilstandsendringene kan utløses av om en prosess må vente på at en lese- eller skriveoperasjon skal fullføres, eller når en annen mer presserende prosess må gis en sjanse til å kjøre.
Prosesskontrollkommandoer
Det er en rekke kommandoer som er tilgjengelige for gjennomgang og manipulering av prosesser. Kommandoen ‘ps’ kan brukes til å se prosessstatusinformasjonen.
Kommando | ps - gir informasjon om alle prosessene som kjører. |
---|---|
Vanlig syntaks | $ ps (ALTERNATIVER) |
Eksempel 1 | $ ps Gir informasjon om prosessen inkludert PID, terminalnavn, tidspunkt for opprettelse og navn på prosessene. |
Som diskutert i en tidligere veiledning, kan prosesser klassifiseres som forgrunn, bakgrunn eller demon. Når en kommando kjøres fra terminalen, går den normal i forgrunnen. For å kjøre en prosess i bakgrunnen, kan ‘&’ knappen på slutten av kommandoen brukes.
Eksempel:
$ grep “how” file1 > file2 &
Denne kommandoen søker etter linjene som inneholder mønsteret 'hvordan' og lagrer utdataene i file2. Hvis fil1 er rimelig stor, kan det være lurt å fortsette med andre handlinger og kjøre denne kommandoen i bakgrunnen. Med '&' på slutten vil denne kommandoen kjøre som en prosess i bakgrunnen.
Det er mulig å avbryte en forgrunnsprosess ved å bruke kommandoen ‘^ Z’. Denne kommandoen flytter den nåværende forgrunnsprosessen til en suspendert tilstand i bakgrunnen. Derfra kan prosessen enten skyves for å gjenoppta i bakgrunnen ved hjelp av 'bg' -kommandoen, eller den kan bringes tilbake til forgrunnen ved hjelp av 'fg' -kommandoen.
Hver prosess er også knyttet til en prioritering. Dette brukes for å sikre at operativsystemet er i stand til å tildele tid til ulike behandlingsoppgaver på en rimelig måte. Den 'fine' kommandoen kan brukes til å redusere prioriteten til en prosess og dermed være 'fin' til de andre prosessene, dvs.
$ hyggelig
Denne linjen vil kjøre den spesifiserte kommandoen med lavere prioritet - som standard vil prioriteten bli redusert med 10. Kommandoen tar også en parameter som kan brukes til å bruke et annet nivå av ‘finhet’.
Eksempel:
$ nice -20 ls
Denne kommandoen kjører ‘ls’ med prioriteten redusert med 20.
Det er også mulig å øke prioriteten med en negativ ‘finhet’. Dette trenger imidlertid tillatelse fra superbruker.
Når en terminal eller påloggingsøkt er stengt, sender den SIGHUP-signalet til barneprosesser. Som standard vil dette signalet føre til at barneprosessene avsluttes. Kommandoen ‘nohup’ kan brukes til å la kommandoer fortsette å kjøre selv når påloggingsøkten avsluttes.
Eksempel:
$ nohup soft file1 > file2
Med denne kommandoen vil sortering av file1 og lagring i file2-prosessen fortsette, selv om vi har logget av systemet.
Kommandoen ‘kill’ kan brukes til å avslutte en hvilken som helst prosess avhengig av tillatelser.
Eksempel:
$ kill (options)
Denne kommandoen avslutter en prosess med prosess-ID. PID for en prosess kan fås ved hjelp av kommandoen ‘ps’.
Denne ‘at’ kommandoen brukes til å utføre kommandoer på en bestemt dato og tid i fremtiden.
Eksempel:
$ at 8pm sort file1>file2
Unix feilsøking
Unix tilbyr en rekke mekanismer for å finne feil i kommandoskriptene dine. Disse mekanismene kan brukes til å se et spor av hva som blir utført, dvs. sekvensen der kommandoer utføres. Sporingen kan brukes til å forstå og verifisere logikken og kontrollere flyt av skriptet.
=> sett -v
utdypende modus: Å sette dette alternativet før du kjører en kommando, vil sikre at kommandoen som skal utføres skrives ut til stdout før den faktisk utføres.
=> sett -x
kjøringssporingsmodus: Hvis du angir dette alternativet, vises hver kommando når den utføres sammen med argumentene.
=> sett -n
no-exec-modus: Innstilling av dette alternativet viser eventuelle feil uten å kjøre noen kommandoer.
Ta en titt på den kommende veiledningen vår for å vite mer om Avansert Shell Scripting.
PREV Opplæring | NESTE veiledning
Anbefalt lesing
- Unix prosesser kontrollkommandoer som PS og topp (del C)
- Unix-kommandoer: Grunnleggende og avanserte Unix-kommandoer med eksempler
- Unix tekstbehandlingskommandoer: Unix-filtre med eksempler
- Unix Pipes Tutorial: Pipes in Unix Programming
- Mer Unix-filter og Awk, Sed-kommandoer i tekstbehandling
- Kommandolinjeargumenter i Unix Shell Script med eksempel
- UNIX opplæring for nybegynnere (20+ grundige Unix opplæringsvideoer)
- Hvordan sammenligne to filer i Unix: kommandoer for filsammenligning