Dræb alle stoppede job Linux

Kill All Stopped Jobs Linux



I Linux refererer et job til en proces, der startes og administreres af skallen. Det kan være en enkelt kommando, en lang og kompleks shell -kommando inklusive rør og omdirigeringer, en eksekverbar eller et script. Hvert job i Linux administreres ved at tildele en sekventiel job -IP, der er knyttet til en bestemt proces.

Et nøglebegreb at forstå om Linux -job er deres status. Der er to hovedstatusser for Linux -job:







  • Forgrund
  • Baggrund

Forgrundsjobs

Et forgrundsjob refererer til en kommando eller et program, der udføres i skallen og optager terminalsessionen, indtil den er fuldført. Et eksempel ville være at starte en filhåndtering eller browser i terminalen



For eksempel viser det følgende skærmbillede et terminalvindue med et forgrundsjob.







I billedet ovenfor er shell -prompten ikke tilgængelig, indtil Firefox -vinduet lukker.

Baggrundsjob

Det modsatte af forgrunden er baggrundsjob. For at starte et job i skallen som et baggrundsjob, bruger vi symbolet ampersand (&). Ved at bruge dette fortæller skallen at lægge de kommandoer, der kommer foran ampersanden i baggrunden, og straks vise shell -prompten.



Eksemplet herunder viser, hvordan du placerer Firefox -jobbet (i ovenstående eksempel) i baggrunden.

Som du kan se, er shell -prompten nu tilgængelig, selvom Firefox stadig kører.

Du vil bemærke numeriske værdier, der vises for baggrundsjob. Den første, angivet med firkantede parenteser [[]), viser job -id'et, mens den anden værdi angiver PID for den proces, der er knyttet til jobbet.

Sådan håndteres baggrundsjob

Jobkommandoen håndterer jobkontrol. Dette giver dig mulighed for at se jobene i baggrunden.

sudo job

Udførelse af ovenstående kommando viser baggrundsjob som vist nedenfor:

Fra venstre side har vi job -id'et.

Efter umiddelbart efter parenteserne er plus (+) eller minus (-) tegnet. Plustegnet angiver, at dette er det aktuelle job, mens minus -tallet viser det næste job.

Den næste parentes viser status for jobbet. Det kan køre, stoppes, afsluttes, udføres eller afslutte med en statuskode.

Endelig viser den sidste del det faktiske navn på jobbet.

Vis job med PID

For at vise baggrundsjob med deres tilsvarende PID -værdier bruger vi -l -flaget som:

job -det

Det viser baggrundsjob med deres PID -værdier, som vist på billedet herunder.

Baggrundsjobs med output

Antag, at vi har et job, som vi vil køre i baggrunden, der dumper et output på skærmen. For eksempel i ovenstående eksempel satte jeg kommandoen apt, som har meget output i baggrunden, uden at ødelægge min terminal.

For at gøre dette kan du omdirigere output til /dev /null som:

sudo apt-get opdatering > /dev/nul&

Sådan bringes baggrundsjob i forgrunden

Vi kan bringe baggrundsjobs i forgrunden ved at bruge kommandoen fg. For eksempel, for at bringe firefox -jobbet med job -id 1 til baggrunden, kan vi gøre:

fg %1

Det vil bringe jobbet i forgrunden som:

[e -mail beskyttet]: ~ $fg %1

firefox

Jobkommandoindstillinger

Jobkommandoen har ikke mange muligheder.

Vi har allerede diskuteret -l for at vise jobene med deres proces -id'er.

Andre muligheder, du kan videregive til jobkommandoen, omfatter:

  • -n - Dette viser de job, der har ændret deres status siden sidste meddelelse. For eksempel et job, der er ændret fra en kørende til en standset tilstand.
  • -s - Viser kun PID'er for jobene.
  • -r - kun kørende job
  • -s - Viser kun stoppede job.

Sådan opsiger eller dræber du job

Vi kan afslutte job ved hjælp af kill -kommandoen efterfulgt af enten job -id'et, en delstreng eller proces -id'et.

Dræb ved hjælp af job -id

For at dræbe et job med job -id'et bruger vi % efterfulgt af id -værdien som:

dræbe %%

Dette vil dræbe det nuværende job; dette svarer til %+.

Dræb et job med en understring

At dræbe et job med en understreng, præfiks substrengen med %? efterfulgt af understringens værdi som:

dræbe %? nisse-lommeregner

BEMÆRK : Linux udfører job samtidigt. Det betyder, at det hopper frem og tilbage mellem tilgængelige job, indtil de er færdige. Derfor vil afslutning af en terminalsession med kørende job afslutte alle dine job.

Du behøver ikke bekymre dig om dette, hvis du bruger en terminalmultiplexer som tmux eller skærm, da du kan vedhæfte dem igen.

Sådan dræbes stoppede job

For at vi kan dræbe alle stoppede job, skal vi binde to kommandoer sammen. Den første får PID'erne for alle stoppede job, og den næste vil dræbe alle de stillede job.

For at se de stoppede job bruger vi kommandoen

job -s

Denne kommando viser alle stoppede job.

Med dette kan vi få PID'erne for de stoppede job og sende dem til at dræbe kommando som:

sudo dræbe -9 ``job -s-s``

Dette vil dræbe alle stoppede job.

Konklusion

Denne vejledning gik over begreberne jobkontrol i Linux og hvordan man får oplysninger om jobene. Det er godt at bemærke, at jobkontrol muligvis ikke er tilgængelig afhængigt af din valgte shell.

Tak fordi du læste & Happy Shells.