Co je proces na pozadí?
Proces na pozadí je proces/příkaz, který se spouští z terminálu a běží na pozadí , bez interakce ze strany uživatele .
Některé příkazy v Linuxu vyžadují čas. Abychom neztráceli čas, když takové příkazy musíme používat, můžeme je umístit na pozadí terminálu a pokračovat v práci. Nejčastěji se to stane, když jsme připojeni k terminálu přes SSH a nechceme otevírat dalších deset zbytečných oken.
V tomto článku si povíme něco o procesech na pozadí v Linuxu a ukážeme si, jak spustit příkaz na pozadí a jak udržet proces v chodu po uzavření relace shellu.
Co je to nástroj obrazovky?
Příkaz obrazovky Linux je velmi užitečný příkaz který nabízí možnost používat více oken shellu (relací) z jedné relace SSH. Když je relace odpojena nebo dojde k narušení sítě, proces, který se spustí na obrazovce relace bude stále probíhat a můžete se znovu připojit k obrazovce relaci kdykoli.
Jak nainstalovat a spustit obrazovku?
Nejprve nainstalujeme obrazovku na naši distribuci.
# Install on Ubuntu \ Debian
sudo apt-get install screen
# Install on FreeBSD
pkg install screen
# Install on Arch Linux
sudo pacman -S screen
# Install on RHEL \ CentOS
yum install screen
# Install on Open Suse
zypper install screen
Code language: Bash (bash)
Pro použití příkazu musíme napsat jednoduše „screen “ a máme možnost přidat název procesu, který vytvoří „název obrazovky “
# Create a new instance
screen -S test
Code language: PHP (php)
Budete mít nové okno, jako je toto
Nyní můžete v tomto okně spustit skript nebo příkaz nebo proces, který potřebujete, například spustíme horní příkaz
# Run top command
top
Code language: PHP (php)
Nyní, abychom nechali horní část obrazovky otevřenou a vrátili se zpět do terminálu, musíme stisknout CTRL + A a za písmenem D .
Ale počkejte, jak můžeme vidět stav naší testovací obrazovky s příkazem top? Jednoduše zadejte screen -ls :
# Check current screen state
screen -ls
Code language: PHP (php)
Můžete vidět, že máme relaci na obrazovce s názvem test, jsme odpojeni od relace, ale proces stále funguje.
Chcete-li znovu připojit k obrazovce, použijte následující příkaz a nahraďte níže uvedené číslo vlastním ID procesu. V tomto příkladu je číslo 65735
# Reattach to screen session
screen -r 65735
Code language: PHP (php)
K ukončení a zničení relace můžeme použít exit příkaz uvnitř relace.
Pokud chceme, můžeme proces ukončit vzdáleně pomocí id jako v tomto příkladu
# Kill process 65735
kill 65735
Code language: PHP (php)
Závěrem lze říci, že příkaz „screen“ je snadno použitelný a zapamatovatelný, je platný téměř ve všech distribucích a hlavně je spolehlivý.