GNU/Linux >> Znalost Linux >  >> Linux

Jak pozastavit proces a obnovit jej později v Linuxu

Představte si tento scénář. Spustíte program. Ale nevíte, jak dlouho to bude trvat, než to skončí. Proces pokračuje několik minut. Nemůžete čekat tak dlouho, protože některé další důležité programy čekají ve frontě. Byli jste někdy v takové situaci? Bez obav! Právě jsem našel jednoduchý trik, jak pozastavit proces a obnovit jej později v Linuxu.

Co udělám, je pouze pozastavit aktuálně běžící proces, provést některé další důležité úkoly a poté pokračovat v zastaveném procesu po dokončení všech ostatních procesů.

To může být velmi užitečné, když máte méně paměti RAM nebo procesoru k provádění více úkolů najednou. Spuštěné procesy můžete kdykoli pozastavit a obnovit později, aniž byste je museli spouštět znovu.

Nyní pojďme do toho a naučíme se pozastavit nebo pozastavit běžící proces a obnovit jej později v operačních systémech Linux a Unix.

Pozastavit proces a obnovit jej později v Linuxu

To je naprosto snadné! Jediné, co musíte udělat, je najít PID (Process ID) a použít ps nebo ps aux a poté jej pozastavte, nakonec jej obnovte pomocí kill příkaz.

Podívejme se na příklad. Chystám se stáhnout obrázek ze sítě Ubuntu 18.04 pomocí wget příkaz:

$ wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso &

Zde & symbol přesune běžící úlohu (tj. wget ) na pozadí, aniž byste jej zavírali.

Nyní chci tuto úlohu pozastavit a spustit další důležité úlohy. Chcete-li tak učinit, nejprve vyhledejte běžící procesy pomocí příkazu:

$ ps

Ukázkový výstup:

  PID TTY          TIME CMD
30056 pts/0    00:00:00 bash
16143 pts/0    00:00:01 wget
32677 pts/0    00:00:00 ps

Jak vidíte, PID příkazu wget je 16143 .

Zastavme nyní tento proces. Chcete-li tak učinit, spusťte z terminálu následující příkaz:

$ kill -STOP 16143

Ověřte, zda byl proces zastaven nebo ne, pomocí příkazu:

$ ps

Ukázkový výstup:

PID TTY TIME CMD
8155 pts/0 00:00:00 bash
16143 pts/0 00:00:01 wget
16398 pts/0 00:00:00 ps

[1]+ Stopped wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso

Vidět? wget proces byl zastaven.

Pokračujte a dělejte další důležité úkoly. Po dokončení všech úloh pokračujte v zastaveném procesu pomocí příkazu:

$ kill -CONT 16143

Chcete-li ověřit, zda proces běží, spusťte ps příkaz.

$ ps

Vidět? Proces, který jsme dříve zastavili, byl obnoven!

Jak jsem již řekl, bude to užitečné, pokud nemůžete provádět více úloh v systému, který má nízkou rychlost RAM nebo CPU.

TL;DR

Nejprve najděte pid běžícího procesu pomocí příkazu ps. Poté jej pozastavte pomocí kill -STOP <PID> a poté systém hibernujte. Obnovte systém a obnovte zastavený proces pomocí příkazu kill -CONT <PID> .

Bude to fungovat po restartování mého systému?

Možná by vás zajímalo, bude to fungovat i po úplném vypnutí nebo restartu systému? NE . Protože PID procesů se automaticky změní po restartu vašeho systému. Nepřetrvávají po restartu. V takových případech můžete celý systém pozastavit nebo hibernovat a obnovit jej, až budete připraveni.

A to je vše. Nyní víte, jak pozastavit a obnovit proces v operačních systémech Linux a Unix. Doufám, že to pomůže.

Doporučeno:

  • Automatické vypínání, restartování, pozastavení a hibernace systému Linux v určitou dobu
  • Automatické probuzení systému Linux z režimu spánku nebo hibernace
  • Reptyr – přesunutí běžícího procesu z jednoho terminálu do druhého bez jeho uzavření
  • Jak přidat linuxové příkazy do fronty a spouštět je jeden po druhém
  • Jak zobrazit informace o procesu pomocí procesů v systému Linux

Linux
  1. Jak spustit příkaz Linux na pozadí a odpojit proces v terminálu

  2. Jak najít a zabít zombie proces v Linuxu

  3. Jak pozastavit a přenést proces na pozadí do popředí?

  1. Jak zabít proces zombie na Linuxu

  2. Jak nastavit prioritu procesu Linux pomocí příkazů nice a renice

  3. Linux:Jak zjistit, kde byl proces spuštěn a jak byl spuštěn?

  1. Jak nainstalovat vtop na Linux

  2. Jak nainstalovat a nakonfigurovat Monit na Linuxu pro monitorování procesů

  3. Jak hibernovat proces v Linuxu uložením jeho paměti na disk a jeho pozdějším obnovením?