Basis van Linux en de opdrachtregel

Om een proces te stoppen dat niet meer reageert, wordt aangeraden eerst „kill <proces-ID>” te gebruiken en „kill -9 <proces-ID>” alleen als het proces daarmee niet stopt. Wat is de reden?

  1. AHet standaardsignaal SIGTERM (nummer 15) kan het proces ontvangen, zodat het kan opruimen voordat het stopt, terwijl SIGKILL (nummer 9) niet kan worden ontvangen en het proces zonder opruimen geforceerd beëindigt
  2. BSIGTERM (nummer 15), dat kill standaard stuurt, beëindigt alles inclusief de kindprocessen, terwijl SIGKILL (nummer 9) alleen het opgegeven proces beëindigt en dus minder gevolgen heeft
  3. CSIGKILL (nummer 9) kan het proces ontvangen, zodat het kan opruimen voordat het stopt, terwijl SIGTERM (nummer 15), dat kill standaard stuurt, niet kan worden genegeerd en het proces meteen beëindigt
Antwoord en toelichting tonen

Antwoord: A. Het standaardsignaal SIGTERM (nummer 15) kan het proces ontvangen, zodat het kan opruimen voordat het stopt, terwijl SIGKILL (nummer 9) niet kan worden ontvangen en het proces zonder opruimen geforceerd beëindigt

Een signaal is een korte melding waarmee het besturingssysteem een proces op de hoogte brengt van een gebeurtenis, en elk signaal heeft een vast nummer en een vaste naam. Zonder opties stuurt kill SIGTERM (nummer 15); een programma kan een routine (handler) voorzien die dit signaal ontvangt, zodat het bestanden in bewerking kan opslaan of tijdelijke bestanden kan verwijderen voordat het stopt. SIGKILL (nummer 9) kan het proces niet ontvangen en ook niet negeren, en de kernel beëindigt het proces geforceerd, zodat half geschreven bestanden beschadigd kunnen achterblijven. Het ID van het proces dat moet worden gestopt, wordt opgezocht met ps of top.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van Linux en de opdrachtregel

  1. Terwijl in een terminal het langdurige ./sim.sh draait, wil je in dezelfde terminal andere commando's gebruiken. Wat gebeurt er als je op Ctrl+Z drukt en daarna bg uitvoert?
  2. Op een server die via SSH is bereikt, werd een langdurige taak gestart met „./run.sh &”, en toen de verbinding werd verbroken, stopte de taak ook. Wat is de meest geschikte manier om de taak te starten zodat die blijft draaien nadat de verbinding is verbroken?
  3. Welke tekens worden getoond als de bovenstaande twee regels in een shell worden uitgevoerd?
  4. Wat is de uitvoer van de twee echo-commando's als de bovenstaande commando's in volgorde worden uitgevoerd?
  5. Zoals hierboven te zien is, wordt het script s.sh met argumenten uitgevoerd. Wat is de uitvoer?