/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Ctrl/C og Ctrl/Z
Fra : Morten Lehrmann


Dato : 18-01-01 18:15


Hvorfor er Ctrl/Z bedre til at afbryde en kørende forgrundssproces end Ctrl/C ?

Ofte kan jeg ikke afbryde med Ctrl/C, men må i stedet bruge Ctrl/Z og kill fra kommandolinien.

Hvordan virker de to tastsekvenser mere teknisk (fx hvilke kill-signaler sender de)?


Mvh
Morten

 
 
news.sunsite.dk (18-01-2001)
Kommentar
Fra : news.sunsite.dk


Dato : 18-01-01 19:35

> Hvorfor er Ctrl/Z bedre til at afbryde en kørende forgrundssproces end
Ctrl/C ?

Det er svjv 2 forskellige ting de gør...

> Ofte kan jeg ikke afbryde med Ctrl/C, men må i stedet bruge Ctrl/Z og kill
fra kommandolinien.

ctrl-z ligger processen i baggrunden... du får et nummer når du trykker
ctrl-z midt i et program... processen bliver vidst lagt i dvale. Så kan du
bruge kommandoen fg til at hitte den frem igen... se kommandoerne fg
(foreground),bg (background) og jobs.

ctrl-c afbryde processen helt.

/Danni



Zurfer (19-01-2001)
Kommentar
Fra : Zurfer


Dato : 19-01-01 10:17

In article <oHG96.41880$W81.443355@twister.sunsite.dk>, "news.sunsite.dk"
<danni@finne.dk> wrote:

> ctrl-z ligger processen i baggrunden... du får et nummer når du trykker
> ctrl-z midt i et program... processen bliver vidst lagt i dvale. Så kan
> du bruge kommandoen fg til at hitte den frem igen... se kommandoerne fg
> (foreground),bg (background) og jobs.

Er der ikke en ctrl-etellerandet til at fortsætte med at køre processen
så man kan komme til at skrive i sin prompt igen...eller skal man trykke
ctrl-z og så skifte processen med fg .??

Kenneth

Rasmus Bøg Hansen (19-01-2001)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 19-01-01 14:34

On Fri, 19 Jan 2001, Zurfer wrote:

> In article <oHG96.41880$W81.443355@twister.sunsite.dk>, "news.sunsite.dk"
> <danni@finne.dk> wrote:
>
> > ctrl-z ligger processen i baggrunden... du får et nummer når du trykker
> > ctrl-z midt i et program... processen bliver vidst lagt i dvale. Så kan
> > du bruge kommandoen fg til at hitte den frem igen... se kommandoerne fg
> > (foreground),bg (background) og jobs.
>
> Er der ikke en ctrl-etellerandet til at fortsætte med at køre processen
> så man kan komme til at skrive i sin prompt igen...eller skal man trykke
> ctrl-z og så skifte processen med fg .??

ctrl-z sender et STOP signal til processen. Dette kan ikke famges af
processen, hvorfor den altid vil virke (medmindre den hænger meget længe
i et eller andet kernekald). For at bringe den frem igen skal den have
et CONT signal - og der SVJH ingen shells, der implementerer dette som
et ctrl+?...

INTR - interrupt -(som CTRL sender) kan fanges og ignoreres af
programmet. Gør den dette, kan det ikke afbrydes med ctrl+c. KILL (kill
-9) kan dog ikke fanges, så vejen frem for at afslutte et dødt program,
der ikke reagerer på ctrl+c er desværre kun ctrl+z og kill -9 (eller
evt. kill -9 fra en anden shell - eller fra en eller anden grafisk
ting).

Rasmus Bøg Hansen


Thorbjørn Ravn Ander~ (19-01-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 19-01-01 15:31

Rasmus Bøg Hansen wrote:

> ctrl-z sender et STOP signal til processen. Dette kan ikke famges af
> processen, hvorfor den altid vil virke (medmindre den hænger meget længe
> i et eller andet kernekald). For at bringe den frem igen skal den have
> et CONT signal - og der SVJH ingen shells, der implementerer dette som
> et ctrl+?...

Joda. Prøv fx at taste Ctrl-Z i Emacs.

> INTR - interrupt -(som CTRL sender) kan fanges og ignoreres af
> programmet. Gør den dette, kan det ikke afbrydes med ctrl+c. KILL (kill
> -9) kan dog ikke fanges, så vejen frem for at afslutte et dødt program,
> der ikke reagerer på ctrl+c er desværre kun ctrl+z og kill -9 (eller
> evt. kill -9 fra en anden shell - eller fra en eller anden grafisk
> ting).

Zombies kan ikke kildes. De er nemlig allerede døde. Bare lige for en
god ordens skyld så står de med "Z" i ps.

--
Thorbjørn Ravn Andersen "...sound of...Tubular Bells!"
http://bigfoot.com/~thunderbear

Rasmus Bøg Hansen (19-01-2001)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 19-01-01 17:43

On Fri, 19 Jan 2001, Thorbjørn Ravn Andersen wrote:

> Rasmus Bøg Hansen wrote:
>
> > ctrl-z sender et STOP signal til processen. Dette kan ikke famges af
> > processen, hvorfor den altid vil virke (medmindre den hænger meget længe
> > i et eller andet kernekald). For at bringe den frem igen skal den have
> > et CONT signal - og der SVJH ingen shells, der implementerer dette som
> > et ctrl+?...
>
> Joda. Prøv fx at taste Ctrl-Z i Emacs.

Emacs er jo heller ikke en terminalemulator. Terminalemulatoren (f.
eks. xterm) fanger ctrl-z og sender stop-signal til forgrundsprocessen i
terminalvinduet. Det gør X ikke.

Men jeg tilstår; det er ikke ens shell, der fanger ctrl+z - den rykker
bare sig selv til forgrunden, når dens barneproces bliver stoppet. Måske
man kan sætte xterm op til at fortolke et ctrl+? som et CONT signal?

> > INTR - interrupt -(som CTRL sender) kan fanges og ignoreres af
> > programmet. Gør den dette, kan det ikke afbrydes med ctrl+c. KILL (kill
> > -9) kan dog ikke fanges, så vejen frem for at afslutte et dødt program,
> > der ikke reagerer på ctrl+c er desværre kun ctrl+z og kill -9 (eller
> > evt. kill -9 fra en anden shell - eller fra en eller anden grafisk
> > ting).
>
> Zombies kan ikke kildes. De er nemlig allerede døde. Bare lige for en
> god ordens skyld så står de med "Z" i ps.

Korrekt. Nu tænkte jeg nu også mest på almindelige kørende processer -
ikke processer, der hænger i et langt, blokerende systemkald eller
zombier.

Rasmus Bøg Hansen


frank damgaard (18-01-2001)
Kommentar
Fra : frank damgaard


Dato : 18-01-01 18:55

Morten Lehrmann <mle000@lehrmann.dk> wrote:

> Hvorfor er Ctrl/Z bedre til at afbryde en kørende forgrundssproces end Ctrl/C ?
> Ofte kan jeg ikke afbryde med Ctrl/C, men må i stedet bruge Ctrl/Z og kill fra kommandolinien.
> Hvordan virker de to tastsekvenser mere teknisk (fx hvilke kill-signaler sender de)?

Ctrl-Z er ofte sæt i stå / suspend (men ikke afbryd)
og Ctrl-C er "intr"
Se stty -a
speed 9600 baud; rows 30; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
.....

Men programmer kan vælge at undlade at reagere på visse signaler.
(dog ikke kill -9 !)
Eller der skal laves noet oprydning når programmet modtager "intr".
Ved Ctrl-Z er oprydning måske ikke nødvendig men hvis der skal laves
noget ved afslut (måske netværksrelateret) og det hænger, så er det
måske problemet opstår?


--
Frank Damgaard


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408896
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste