Next: Media
Up: Korn- og C-skallet
Previous: Valg av innloggingsskall
Både csh og ksh har jobb-kontroll .
Jobb-kontroll er muligheten for å flytte eksekverande
prosessar i bakgrunnen, forgrunnen, stoppe eller restarte
dei. Jobb-kontroll har på mange måtar vorte erstatta
og duplisert ved hjelp av skall-nivå, virtuelle terminalar
og X-Windows,- men mange anser jobb-kontroll som den beste
måten å kontrollere prosessar. Bourne-skallet
understøttar jobb-kontroll dersom det vert starta med
namnet jsh ( for job shell ) istaden for sh.
Når ein startar ein prosess eller ein jobb i forgrunnen
vil terminalen vere "blokkert" heilt til prosessen er ferdig.
Då er det ofte greitt å legge denne prosessen i
bakgrunnen for å få tilbake kontrollen av terminalen.
På same måte er det ønskeleg å få ein
bakgrunns-prosess til ein forgrunns-prosess,- enten for
å kontrollere den eller gje inn data til prosessen.
Når ein har kjøyrer ein prosess i forgrunnen,
kan ein trykke CTRL-Z for å suspendere eller
stoppe prosessen.
73 csh:zevs{trondk} > sleep 40
CTRL-Z
[1] + Stopped sleep 40
74 csh:zevs{trondk} >
Prosessen har stoppa, og ein beskjed vert skreven ut som
inneheld jobb-nummeret, status Stopped og
kommando-linja sleep 40. Legg merke til at sjølv
om denne prosessen er stoppa så er ikkje klokka stoppa,
dvs. at dersom ein startar opp denne prosessen om 40 sekund
vil denne prosessen fullføre umiddelbart.
Når ein står i denne situasjonen kan ein starte nye
prosessar/jobbar, drepe stoppa jobbar/prosessar,restarte
stoppa prosessar/jobbar i forgrunnen eller i bakgrunnen.
For å kikke på ei liste over alle prosessar/jobbar,
inkludert bakgrunnsprosessar og stoppa prosessar/jobbar,
brukar ein kommandoen jobs. Den listar prosessar/
jobbar på same måte som ovanfor.
74 csh:zevs{trondk} > jobs
[1] + Stopped sleep 40
75 csh:zevs{trondk} >
No kan ein bruke jobb-nummeret til å kontrollere desse
jobbane.
Bruk bg ( for background ) for å restarte jobbar
som bakgrunnsjobbar, og fg ( for forground ) for å
restarte jobbar som forgrunnsjobbar. Desse kommandoane tek
ein jobb-nummer innleia med eit % ( prosent tegn ) som
parameter.
75 csh:zevs{trondk} > fg %1
sleep 40
Som vi ser vert kommando-linja skreve ut på nytt og
jobben "overtek" kontrollen over terminalen. Kommandoen
bg verkar akkurat på same måten, forskjellen
er at jobben vert lagt i bakgrunnen, på same måten
som om ein hadde brukt & på slutten av
kommando-linja.
Ein kan bruke %streng istadenfor %tall, der
streng er alle kommando-linjer som startar med
streng, eller formen %?streng som vil finne
alle kommando-linjer som inneheld streng.
Ein kan stoppe bakgrunnsjobbar med kommandoen stop
,
og restarte dei igjen med fg og bg.
76 csh:zevs{trondk} > (sleep 40; echo halloen ) &
[1] 12056
77 csh:zevs{trondk} > jobs
[1] + Running (sleep 40; echo halloen) &
78 csh:zevs{trondk} > stop %?sleep
[1] + Stopped (signal) (sleep 40; echo halloen)&
79 csh:zevs{trondk} > jobs
[1] + Stopped (signal) (sleep 40; echo halloen)&
80 csh:zevs{trondk} > fg %1
(sleep 40; echo halloen)
halloen
81 csh:zevs{trondk} > fg %1
ksh: fg: no such job
82 csh:zevs{trondk} >
Dersom ein prøvar å logge ut medan ein har stoppa jobbar
vil skallet klage.
82 csh:zevs{trondk} > jobs
[1] + Stopped (signal) (sleep 40; echo halloen)&
83 csh:zevs{trondk} > exit
You have stopped jobs
84 csh:zevs{trondk} >
Dersom dette skjer, bør ein studere jobb-lista og frigjere
prosessar enten ved å fullføre dei eller drepe dei.
Dersom ein prøvar på nytt å logge ut vil csh
og ksh drepe dei stoppa jobbane og logge ut. Ein kan
drepe jobbar med kommandoen kill :
kill -signal %tall
der signal er det signalet ein vil sende, og
%tall refererer til jobb-nummeret.
Next: Media
Up: Korn- og C-skallet
Previous: Valg av innloggingsskall
Trond.Kandal@itea.ntnu.no