Zabite všetky zastavené úlohy Linux

Kill All Stopped Jobs Linux



V systéme Linux sa úloha vzťahuje na proces spustený a riadený prostredím Shell. Môže to byť jeden príkaz, dlhý a zložitý príkaz shell vrátane kanálov a presmerovaní, spustiteľný súbor alebo skript. Každá úloha v systéme Linux je spravovaná priradením sekvenčnej IP adresy úlohy priradenej k určitému procesu.

Kľúčovým konceptom, ktorý je potrebné porozumieť úlohám Linuxu, sú ich stavy. Existujú dva hlavné stavy úloh Linuxu:







  • V popredí
  • Pozadie

Úlohy v popredí

Úloha v popredí sa týka príkazu alebo programu vykonaného v shell a zaberá terminálovú reláciu, kým sa nedokončí. Príkladom môže byť spustenie správcu súborov alebo prehliadača v termináli



Nasledujúca snímka obrazovky napríklad zobrazuje okno terminálu s úlohou v popredí.







Na vyššie uvedenom obrázku nie je výzva shellu k dispozícii, kým sa nezavre okno Firefoxu.

Práca na pozadí

Opakom popredia sú úlohy na pozadí. Na spustenie úlohy v shell ako úlohu na pozadí používame symbol ampersand (&). Použitie tohto príkazu povie shellu, aby vložil akékoľvek príkazy pred ampersand na pozadí a okamžite zobrazil výzvu shellu.



Nasledujúci príklad ukazuje, ako umiestniť úlohu Firefoxu (vo vyššie uvedenom príklade) na pozadie.

Ako vidíte, výzva shellu je teraz k dispozícii, aj keď je Firefox stále spustený.

Všimnete si číselné hodnoty zobrazené pre úlohy na pozadí. Prvá z nich, uvedená v hranatých zátvorkách ([]), zobrazuje ID úlohy, zatiaľ čo druhá hodnota označuje PID procesu priradeného k úlohe.

Ako spravovať úlohy na pozadí

Príkaz jobs ovláda riadenie úloh. To vám umožní zobraziť úlohy na pozadí.

sudo zamestnania

Vykonaním vyššie uvedeného príkazu sa zobrazia úlohy na pozadí, ako je uvedené nižšie:

Začíname na ľavej strane a máme Job ID.

Hneď za zátvorkami je znamienko plus (+) alebo mínus (-). Znamienko plus znamená, že ide o aktuálnu úlohu, zatiaľ čo mínusové číslo ukazuje ďalšiu úlohu.

Nasledujúca zátvorka ukazuje stav úlohy. To môže byť spustené, zastavené, ukončené, dokončené alebo ukončené pomocou stavového kódu.

Nakoniec posledná časť ukazuje skutočný názov práce.

Zobraziť úlohy s PID

Na zobrazenie úloh na pozadí s ich zodpovedajúcimi hodnotami PID používame príznak -l ako:

zamestnania -ten

To ukáže úlohy na pozadí s ich hodnotami PID, ako je znázornené na obrázku nižšie.

Úlohy na pozadí s výstupom

Predpokladajme, že máme prácu, ktorú chceme spustiť na pozadí a ktorá ukladá výstup na obrazovku. Napríklad vo vyššie uvedenom príklade vložím príkaz apt, ktorý má veľa výstupu, na pozadí, bez toho, aby som pokazil môj terminál.

Ak to chcete urobiť, môžete výstup presmerovať na /dev /null ako:

sudo apt-get aktualizácia > /dev/nulový&

Ako preniesť prácu na pozadí do popredia

Úlohy na pozadí môžeme dostať do popredia pomocou príkazu fg. Ak napríklad chceme, aby sa úloha Firefoxu s ID úlohy 1 nastavila na pozadie, môžeme urobiť:

fg %1

Tým sa práca dostane do popredia ako:

[chránené e -mailom]: ~ $fg %1

firefox

Možnosti príkazu Jobs

Príkaz jobs nemá veľa možností.

Už sme diskutovali o -l, aby sme ukázali úlohy s ich ID procesu.

Medzi ďalšie možnosti, ktoré môžete odovzdať príkazu úlohy, patria:

  • -n - Toto zobrazuje úlohy, ktoré od posledného upozornenia zmenili svoj stav. Napríklad úloha, ktorá sa zmenila z bežiaceho do zastaveného stavu.
  • -p - Uvádza iba PID úloh.
  • -r - iba vykonávanie úloh
  • -s - Zobrazuje iba zastavené úlohy.

Ako ukončiť alebo zabiť zamestnanie

Úlohy môžeme ukončiť pomocou príkazu kill, za ktorým nasleduje ID úlohy, podreťazec alebo ID procesu.

Zabite pomocou ID úlohy

Na zabitie úlohy s ID úlohy použijeme % nasledované hodnotou id ako:

zabiť %%

To zabije súčasnú prácu; je to podobné ako %+.

Zabite Joba podreťazcom

Zabíjate prácu podreťazcom a dávate pred neho predponu %? nasledovaná hodnotou podreťazca ako:

zabiť %? gnome-kalkulačka

POZNÁMKA : Linux vykonáva úlohy súčasne. To znamená, že skáče tam a späť medzi dostupnými úlohami, kým ich nedokončia. Ukončením terminálovej relácie so spustenými úlohami sa teda ukončia všetky vaše úlohy.

Ak použijete terminálový multiplexor, ako je tmux alebo obrazovka, nemusíte si s tým robiť starosti, pretože ich môžete znova pripojiť.

Ako zabiť zastavené práce

Aby sme mohli zabiť všetky zastavené práce, musíme spojiť dva príkazy. Prvý z nich získa PID všetkých zastavených úloh a ďalší zabije všetky poskytnuté úlohy.

Na zobrazenie zastavených úloh používame príkaz

zamestnania -s

Tento príkaz zobrazuje všetky zastavené úlohy.

V takom prípade môžeme získať PID zastavených úloh a priradiť ich príkazu zabíjania takto:

sudo zabiť -9 zamestnania -p-s

To zabije všetky zastavené práce.

Záver

Tento tutoriál sa zaoberal konceptmi riadenia úloh v systéme Linux a získaním informácií o úlohách. Je dobré si uvedomiť, že ovládanie úlohy nemusí byť k dispozícii, v závislosti od vašej vybranej schránky.

Ďakujem za prečítanie a Happy Shells.