Hoe om prosesse te gebruik deur Linux te gebruik

Meeste van die tyd wil jy 'n program op sy eie laat eindig, of, as dit 'n grafiese toepassing is, deur die toepaslike kieslys opsie te gebruik of deur die kruis in die hoek te gebruik.

So dikwels gaan 'n program hang, in welke geval jy 'n metode nodig het om dit dood te maak. U kan ook 'n program wat op die agtergrond loop, doodmaak wat u nie meer hoef te hardloop nie.

Hierdie gids bied 'n metode om alle weergawes van dieselfde program wat op u stelsel loop, dood te maak.

Hoe om die Killall-bevel te gebruik

Die killall-bevel doodmaak al die prosesse met die naam. Dit beteken dat as jy drie weergawes van dieselfde program het, sal die killall-opdrag al drie doodmaak.

Byvoorbeeld, maak 'n klein program so 'n beeldkyker oop. Maak nou 'n ander kopie van dieselfde beeld kyker oop. Vir my voorbeeld het ek Xviewer gekies wat 'n kloon is van Eye of Gnome .

Maak nou 'n terminaal oop en tik die volgende opdrag in:

killall

Om byvoorbeeld alle gevalle van Xviewer dood te maak, tik die volgende:

killall xviewer

Albei gevalle van die program wat u gekies het om dood te maak, sluit nou.

Dood die presiese proses

Killall kan vreemde resultate lewer. Wel, hier is een rede waarom. As u 'n opdragnaam het wat langer as 15 karakters lank is, sal die killall-opdrag slegs op die eerste 15 karakters werk. As jy dus twee programme het wat dieselfde eerste 15 karakters deel, sal albei programme gekanselleer word, al wou jy net een doodmaak.

Om hieroor te kom, kan u die volgende skakel spesifiseer wat slegs lêers sal doodmaak wat ooreenstem met die presiese naam.

killall -e

Ignoreer geval wanneer programme vermoor word

Om seker te maak dat die killall-opdrag die geval van die programnaam wat u verskaf, ignoreer, gebruik die volgende opdrag:

killall -I
killall - waarskuwing

Dood alle programme in dieselfde groep

Wanneer u 'n opdrag soos die volgende een uitvoer, sal dit twee prosesse skep:

ps -ef | minder

Een bevel is vir die ps-f- deel wat al die lopende prosesse op u stelsel lys en die uitset word aan die minder bevel gegee .

Albei programme behoort aan dieselfde groep wat bash is.

Om albei programme gelyktydig dood te maak, kan u die volgende opdrag uitvoer:

killall -g

Byvoorbeeld om alle opdragte wat in 'n bash-dop hardloop, dood te maak, voer die volgende uit:

killall-g bash

Terloops om al die lopende groepe te lys, voer die volgende opdrag uit:

ps-g

Kry bevestiging voordat u programme doodmaak

Dit is duidelik dat die bevel van Killall is 'n baie kragtige bevel en jy wil nie die verkeerde prosesse per ongeluk doodmaak.

Deur die volgende skakelaar te gebruik, sal u gevra word of u seker is voordat elke proses gedood word.

killall -i

Doodprosesse wat vir 'n sekere hoeveelheid tyd hardloop

Stel jou voor dat jy 'n program bestuur het en dit neem baie langer as wat jy gehoop het.

U kan die bevel op die volgende manier doodmaak:

killall -o h4

Die h in die bogenoemde bevel staan ​​vir ure.

U kan ook enige van die volgende spesifiseer:

Alternatiewelik kan u die volgende skakel as u bevele wil doodmaak wat pas pas begin hardloop.

killall -y h4

Hierdie keer sal die killall-opdrag alle programme wat minder as 4 uur lank loop, doodmaak.

Moenie my vertel as 'n proses nie doodgemaak word nie

As u 'n program wat nie loop nie, doodmaak, sal u die volgende fout ontvang:

programnaam: geen proses gevind nie

As jy nie wil weet of die proses nie gevind is nie, gebruik die volgende opdrag:

killall -q

Gebruik gewone uitdrukkings

In plaas van die naam van 'n program of opdrag te spesifiseer, kan u 'n gewone uitdrukking spesifiseer sodat alle prosesse wat ooreenstem met die gewone uitdrukking, gesluit word deur die killall-opdrag.

Om 'n gereelde uitdrukking te gebruik, gebruik die volgende opdrag:

killall -r

Dood programme vir 'n gebruiker spesifiseer

As u 'n program wat deur 'n spesifieke gebruiker bestuur word, wil doodmaak, kan u die volgende opdrag spesifiseer:

killall -u

As u al die prosesse vir 'n bepaalde gebruiker wil doodmaak, kan u die program naam uitvee.

Wag vir killall om af te handel

Standaard sal killall weer terugkeer na die terminale wanneer jy dit uitvoer, maar jy kan killall dwing om te wag totdat al die prosesse wat gespesifiseer is gesluit is voordat jy na die terminale venster terugkeer.

Om dit te doen, voer die volgende opdrag uit:

killall -w

As die program nooit sterf nie, sal killall ook voortgaan om voort te gaan.

Signalen Signalen Signalen

By verstek stuur die killall-opdrag die SIGTERM-sein na programme om hulle te sluit, en dit is die skoonste metode om programme te vermoor.

Daar is egter ander seine wat jy kan stuur met die killall-opdrag en jy kan hulle lys met die volgende opdrag:

killall -l

Die lys wat teruggegee word, sal so iets wees:

Die lys is baie lank. Om te lees oor wat hierdie seine beteken, loop die volgende opdrag:

man 7 sein

Oor die algemeen moet jy die standaard SIGTERM opsie gebruik, maar as die program weier om te sterf, kan jy SIGKILL gebruik wat die program dwing om ondanks die feit dat dit ongemagtig is, te sluit.

Ander maniere om 'n program dood te maak

Daar is 5 ander maniere om 'n Linux-program dood te maak, soos uitgelig in die gekoppelde gids.

Om jou egter te red, is die poging om die skakel hier te klik, 'n afdeling wat wys wat die opdragte is, hoekom jy daardie bevele oor killall kan gebruik.

Die eerste een is die doodmaak opdrag. Die killall-opdrag soos u gesien het, is goed om al die weergawes van dieselfde program dood te maak. Die doodmaak opdrag is ontwerp om een ​​proses op 'n keer te vermoor en is dus meer gemik.

Om die doodmaakopdrag uit te voer, moet jy die proses-ID van die proses wat jy wil doodmaak, ken. Hiervoor kan u die ps bevel gebruik .

Byvoorbeeld, om 'n lopende weergawe van Firefox te vind, kan u die volgende opdrag uitvoer:

ps -ef | grep firefox

U sal 'n lyn van data sien met die opdrag / usr / lib / firefox / firefox aan die einde. Aan die begin van die reël sal jy jou gebruikers-ID en die nommer sien nadat die gebruikers-ID die proses-ID is.

Met behulp van die proses-ID kan jy Firefox doodmaak deur die volgende opdrag uit te voer:

kill -9

'N Ander manier om 'n program dood te maak, is deur die xkill-opdrag te gebruik. Dit word algemeen gebruik om grafiese toepassings te misbruik.

Om 'n program soos Firefox oop te maak, maak 'n terminaal oop en voer die volgende opdrag uit:

xkill

Die wyser sal nou verander na 'n groot wit kruis. Hou die wyser oor die venster wat jy wil doodmaak en klik met die linker muisknop. Die program gaan onmiddellik uit.

Nog 'n manier om 'n proses dood te maak, is deur die Linux-opdrag te gebruik. Die boonste opdrag bevat al die lopende prosesse op u stelsel.

Al wat jy moet doen om 'n proses dood te maak, druk die "k" sleutel en voer die proses ID in van die aansoek wat jy wil doodmaak.

Vroeër in hierdie afdeling het die instruksies om dood te maak en dit het jou nodig gehad om die proses te vind deur die ps-opdrag te gebruik en dan die proses te vermoor met die doodmaak opdrag.

Dit is nie die eenvoudigste opsie nie.

Vir een ding gee die ps bevel baie inligting wat jy nie nodig het nie. Al wat jy wou, was die proses-ID. U kan die proses-ID meer eenvoudig kry deur die volgende opdrag uit te voer:

pgrep firefox

Die resultaat van die bogenoemde opdrag is eenvoudig die proses-ID van Firefox. U kan nou die doodmaak opdrag soos volg uitvoer:

maak dood

(Vervang met die werklike proses ID wat deur pgrep teruggegee word).

Dit is egter eintlik makliker om eenvoudig die program naam aan pkill te verskaf soos volg:

pkill firefox

Uiteindelik kan u 'n grafiese instrument gebruik, soos die een wat by ubuntu genaamd "System Monitor" gebruik word. Om 'Stelsel Monitor' uit te voer, druk die super sleutel (Windows sleutel op die meeste rekenaars) en tik "sysmon" in die soekbalk. Wanneer die stelselmonitor-ikoon verskyn, klik daarop.

Die stelselmonitor toon 'n lys van prosesse. Om 'n program op 'n skoon manier te beëindig, kies dit en druk die eindtoets onderaan die skerm (of druk CTRL en E). As dit nie werk nie, kliek regs en kies "Kill" of druk CTRL en K op die proses wat jy wil doodmaak.