V dnešní době vícejádrových procesorů sice systém zvládne obsloužit více procesů v jednom okamžiku, ale i tak jich nikdy není tolik, abychom mohli být plně spokojeni a dělat to o čem ženy tvrdí, že muž nikdy nezvládne, tedy více činností najednou. Co tedy dělat v situaci, kdy vám běží něco co zatěžuje systém, ale zároveň potřebujete (i když krátkodobě) přesměrovat výkon do jiného procesu či aplikace?
Jaký proces zatěžuje systém?
Kdo by neznal program top, tomu můžu doporučit program htop. Ten se mi moc líbí. Práce s ním je intuitivní a tak to určitě nebude problém zjistit.
Z výstupu programu je potřeba vyčíst tzv. PID, tedy Process ID (jednoznačný identifikátor každého procesu). Pokud víte jak se proces jmenuje, můžete také zadat např.
ps aux | grep <jméno procesu>
tedy např.
ps aux | grep mencoder
a číslo procesu se zobrazí hned ve druhém sloupečku (hned za jménem uživatele, který proces spustil).
Pozastavení procesu
No, po pravdě řečeno by se k tomu dal použít právě třeba program htop, ale také nejdeno grafické klikátko. Na druhou stranu to provedete díky znalosti PID procesu takto:
kill -STOP <PID procesu>
např.
kill -STOP 123456
I když příkaz vypadá na první pohled zvláštně, obzvlášť příkaz kill (zabít) budí hrůzu, procesu posíláte pouze signál STOP.
Pokud víte jak se program jmenuje a nechce se vám zjišťovat jeho PID, můžete použít příkaz killall.
killall -s STOP <jméno procesu>
např.
killall -s STOP mencoder
Spuštění pozastaveného procesu
Pro pokračování běhu pozastaveného programu se používá signál CONT (od slova continue - pokračovat), program tedy opět spustíte takto
kill -CONT <PID procesu>
resp.
killall -s CONT <jméno procesu>
A co změna priority procesu?
Stejně jako v jiných systémech, i v Linuxu můžete nastavit prioritu (oblíbenost) vašeho procesu. Platí, že procesy s vyšší prioritou mají přednost před těmi s prioritou nižší. Toho by se dalo využít i v našem případě, nastavit vyšší prioritu procesu, u kterého si to přejeme. Ovšem v tomto případě zůstává proces s nižší prioritou stále aktivní (vykonává se) a tak bude vytížení CPU stále na 100%, i když budou mít ostatní procesy (s vyšší prioritou) přednost. Ale o tom třeba někdy příště.
Zdroj
http://tombuntu.com/index.php/2007/11/23/how-to-pause-a-linux-process/