Döda alla stoppade jobb Linux

Kill All Stopped Jobs Linux



I Linux refererar ett jobb till en process som startas och hanteras av skalet. Det kan vara ett enda kommando, ett långt och komplext skalkommando inklusive rör och omdirigeringar, en körbar eller ett skript. Varje jobb i Linux hanteras genom att tilldela en sekventiell jobb -IP kopplad till en specifik process.

Ett nyckelbegrepp att förstå om Linux -jobb är deras status. Det finns två huvudstatuser för Linux -jobb:







  • Förgrund
  • Bakgrund

Jobb i förgrunden

Ett förgrundsjobb avser ett kommando eller ett program som körs i skalet och upptar terminalsessionen tills det är klart. Ett exempel är att starta en filhanterare eller webbläsare i terminalen



Till exempel visar följande skärmdump ett terminalfönster med ett förgrundsjobb.







I bilden ovan är shell -prompten inte tillgänglig tills Firefox -fönstret stängs.

Bakgrundsjobb

Motsatsen till förgrunden är bakgrundsjobb. För att starta ett jobb i skalet som ett bakgrundsjobb använder vi symbolen ampersand (&). Genom att använda detta berättar skalet att lägga vilka kommandon som kommer före ampersanden i bakgrunden och omedelbart visa skalprompten.



Exemplet nedan visar hur du placerar Firefox -jobbet (i exemplet ovan) i bakgrunden.

Som du kan se är shell -prompten nu tillgänglig trots att Firefox fortfarande körs.

Du kommer att märka numeriska värden som visas för bakgrundsjobb. Den första, indikerad med hakparenteser [[]), visar jobb -ID, medan det andra värdet anger PID för processen som är associerad med jobbet.

Hur man hanterar bakgrundsjobb

Kommandot jobb hanterar jobbkontroll. Detta gör att du kan se jobben i bakgrunden.

sudo jobb

Genom att utföra kommandot ovan visas bakgrundsjobb enligt nedan:

Från vänster har vi jobb -ID.

Följande omedelbart efter parenteserna är plustecknet (+) eller minus (-). Plustecknet indikerar att detta är det aktuella jobbet, medan minus -talet visar nästa jobb.

Nästa hakparentes visar status för jobbet. Det kan köras, stoppas, avslutas, göras eller avslutas med en statuskod.

Slutligen visar den sista delen det verkliga namnet på jobbet.

Visa jobb med PID

För att visa bakgrundsjobb med motsvarande PID -värden använder vi -l -flaggan som:

jobb -de

Det visar bakgrundsjobben med sina PID -värden, som visas på bilden nedan.

Bakgrundsjobb med utdata

Antag att vi har ett jobb som vi vill köra i bakgrunden som dumpar en utmatning på skärmen. Till exempel, i exemplet ovan lägger jag apt -kommandot, som har mycket output i bakgrunden, utan att förstöra min terminal.

För att göra detta kan du omdirigera utmatningen i /dev /null som:

sudo apt-get uppdatering > /dev/null&

Hur man tar bakgrundsjobb till förgrunden

Vi kan ta bakgrundsjobb till förgrunden med kommandot fg. Till exempel, för att ta Firefox -jobbet med jobb -ID 1 till bakgrunden, kan vi göra:

fg %1

Det kommer att ta jobbet till förgrunden som:

[e -postskyddad]: ~ $fg %1

firefox

Kommandoalternativ för jobb

Kommandot jobb har inte många alternativ.

Vi har redan diskuterat -l för att visa jobben med sina process -ID: n.

Andra alternativ som du kan skicka till jobbkommandot inkluderar:

  • -n - Det här visar de jobb som har ändrat status sedan senaste meddelandet. Till exempel ett jobb som har ändrats från ett löpande till ett stoppat tillstånd.
  • -s - Listar endast jobbens PID: er.
  • -r - Endast löpande jobb
  • -s - Visar bara stoppade jobb.

Hur man avslutar eller dödar jobb

Vi kan avsluta jobb med hjälp av kommandot kill följt av antingen jobb -ID, en delsträng eller process -ID.

Döda med jobb -id

För att döda ett jobb med jobb -ID använder vi % följt av id -värdet som:

döda %%

Detta kommer att döda det nuvarande jobbet; detta liknar %+.

Döda ett jobb med en understräng

Döda ett jobb med en understräng, prefixa delsträngen med %? följt av delsträngsvärdet som:

döda %? gnome-calculator

NOTERA : Linux kör jobb samtidigt. Det betyder att det hoppar fram och tillbaka mellan tillgängliga jobb tills de är klara. Därför kommer att avsluta en terminalsession med jobb som körs avsluta alla dina jobb.

Du behöver inte oroa dig för detta om du använder en terminalmultiplexer som tmux eller skärm, eftersom du kan fästa dem igen.

Hur man dödar stoppade jobb

För att vi ska döda alla stoppade jobb måste vi knyta ihop två kommandon. Den första kommer att få PID för alla stoppade jobb, och nästa kommer att döda alla jobb som tillhandahålls.

För att se de stoppade jobben använder vi kommandot

jobb -s

Detta kommando visar alla stoppade jobb.

Med detta kan vi få PID: erna för de stoppade jobben och leda dem till att döda kommandot som:

sudo döda -9 ''jobb -s-s''

Detta kommer att döda alla stoppade jobb.

Slutsats

Denna handledning gick igenom begreppen jobbkontroll i Linux och hur man får information om jobben. Det är bra att notera att jobbkontroll kanske inte är tillgänglig beroende på vilket skal du väljer.

Tack för att du läser & Happy Shells.