GNU/Linux >> Znalost Linux >  >> Ubuntu

Proč mohu vidět výstup procesů na pozadí?

Například, když napíšu ping 8.8.8.8 & , proč můžeme vidět, že proces pingu funguje? A když napíšu find / -name '*test*' & , je také vidět na monitoru.

proč tomu tak je? Opravdu to není na pozadí?

Nejlepší odpověď

& nařídí shellu, aby spouštěl příkaz na pozadí, tj. je rozvětvený a spouštěný v samostatném dílčím prostředí jako úloha asynchronně.

Všimněte si, že když vložíte & výstup – stdout i stderr – bude stále vytištěno na obrazovce . Pokud na obrazovce nechcete vidět žádný výstup, přesměrujte oba stdout a stderr do souboru podle:

myscript > ~/myscript.log 2>&1 &

Obvykle můžete chtít zrušit stderr přesměrováním na /dev/null pokud se nebudete obávat pozdější analýzy chyb.

Příkazy/skripty můžete také spouštět současně, v samostatných dílčích shellech. Například;

./script1 & ./script2 & ./script3 & 

Úlohu na pozadí lze vrátit zpět na příkazový řádek před dokončením příkazem:

fg <job-number>

job-number lze získat spuštěním

jobs

Ubuntu
  1. Proč kurzor při psaní přeskakuje?

  2. Only Root Can Mount, proč?

  3. Proč nemohu rolovat v terminálu?

  1. Odeslat procesy na pozadí v Debianu 10 – nejlepší metoda?

  2. Proč mi Grep -o -w neposkytuje očekávaný výkon na Mac OS X?

  3. Dostanou procesy na pozadí při odhlášení SIGHUP?

  1. Proč není Pgid procesů dítěte PGID rodiče?

  2. Kam jdou únikové kódy Ansi, když přejdu do jiného procesu? Mohu si je nechat?

  3. Nevidím tlačítko Další (instalace ubuntu na Vmware)?