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