GNU/Linux >> Znalost Linux >  >> Linux

Co znamená &na konci linuxového příkazu?

Kromě toho můžete použít znak "&" ke spuštění mnoha procesů prostřednictvím jednoho (1) ssh připojení, abyste zachovali minimální počet terminálů. Například mám jeden proces, který naslouchá zprávám, aby extrahoval soubory, druhý proces naslouchá zprávám, aby nahrál soubory:Pomocí „&“ mohu spouštět obě služby v jednom terminálu prostřednictvím jediného ssh připojení k mému serveru. .

Tyto procesy běžící přes "&" také "zůstanou naživu" po zavření ssh relace. Docela elegantní a užitečné, pokud je ssh připojení k serveru přerušeno a nebyl použit žádný terminálový multiplexer (screen, tmux, byobu).


Není-li řečeno jinak, příkazy přebírají popředí. V jedné relaci shellu běží pouze jeden proces „v popředí“. Symbol &dává pokyn, aby se příkazy spouštěly v procesu na pozadí, a okamžitě se vrátí na příkazový řádek pro další příkazy.

sh my_script.sh &

Proces na pozadí nebude zůstat naživu po uzavření shellové relace. SIGHUP ukončí všechny běžící procesy. Standardně stejně. Pokud je váš příkaz dlouho spuštěný nebo běží neomezeně dlouho (tj.:microservice), musíte jej pr-pend s nohoup, aby zůstal spuštěný i po odpojení od relace:

nohup sh my_script.sh &

UPRAVIT: Zdá se, že existuje šedá oblast týkající se uzavírání procesů na pozadí při použití &. Jen si uvědomte, že shell může zavřete proces v závislosti na vašem operačním systému a místních konfiguracích (zejména na CENTOS/RHEL):https://serverfault.com/a/117157.


& způsobí spuštění příkazu na pozadí.

Od man bash :

Pokud je příkaz ukončen ovládacím operátorem & , shell provede příkaz na pozadí v podskořápce. Shell nečeká na dokončení příkazu a návratový stav je 0.


Linux
  1. Co znamená Ampersand na konci řádku skriptu Shell?

  2. Co znamená ve výstupu Ps?

  3. Co znamená - v tomto linuxovém příkazu?

  1. Jaká je definice relace v linuxu?

  2. Co znamená symbol linux pipe | dělat?

  3. Co je to příkaz k nalezení priority procesu v Linuxu?

  1. Co znamená název rozhraní eth0 v Linuxu?

  2. Co znamená ./ (lomítko) v linuxu?

  3. Co znamená přípona .d v Linuxu?