GNU/Linux >> Znalost Linux >  >> Linux

Příklady příkazů Nohup – Spustí příkaz, který běží i po vašem odhlášení

Obslužný program nohup spustí příkazový řádek, takže příkaz běží i po vašem odhlášení. Jinými slovy nohup způsobí, že proces ignoruje signál SIGHUP. V závislosti na tom, jak je nakonfigurován místní shell, může být proces spuštěný bez nohup a běžící na pozadí při odhlášení zabit.

Syntaxe pro spuštění příkazu nohup

Základní příkazová sytaxe pro spuštění příkazu nohup je následující:

# nohup command_with_options &

Jakýkoli výstup z vaší úlohy bude přesměrován do souboru s názvem ‘ nohup.out ’, pokud pomocí

neurčíte jinak

# nohup command > myout.file 2>&1

který odešle veškerý výstup do souboru myout.file.

Uložení výstupu příkazu nohup

Pokud nepřesměrujete výstup z příkazu, který provedete pomocí nohup, standardní výstup i standardní chyba budou odeslány do souboru s názvem nohup.out v pracovním adresáři. Pokud nemáte oprávnění k zápisu do pracovního adresáře, nohup odešle výstup na ~/nohup.out .

Výstup můžete také odeslat do jakéhokoli jiného souboru, který určíte, jak je uvedeno výše v syntaxi příkazu.

Příklady

1. Spuštění nohup bez zadání výstupního souboru

Udělejme příklad a otestujte, že skutečně funguje i po odhlášení. Spustíme skript s názvem script.sh. Kontakt skriptu je následující:

# cat script.sh
#!/bin/sh
while(true)
do
	echo "Hello World!"
	sleep 10
done

Spusťte skript v backgroupd pomocí příkazu nohup:

# nohup script.sh & 
[1] 179 
$ nohup: appending output to `nohup.out`

Jak můžete vidět výše, nespecifikovali jsme výstupní soubor. Standardní výstup a standardní chyba tedy ve výchozím nastavení přejdou do souboru nohup.out v adresáři, odkud byl skript vyvolán. Také číslo 179 Zadáno ID procesu (PID) úlohy. Toto PID lze ověřit na výstupu příkazu „ps -ef“, jak je uvedeno níže.

Nyní ukončete shell, znovu se přihlaste a spusťte následující příkaz:

$ ps x | grep script.sh
179  ?   S N  0:01 sh /root/script.sh 
506  p2 S     0:00 grep script.sh

Skript stále funguje. Použijte „ps -ef | grep ps1”, pokud váš systém nepodporuje ps x. Další potvrzení můžete také zkontrolovat ve výstupním souboru nohup.out.

# cat nohup.out
Hello World!
Hello World!
Hello World!
Hello World!
...
POZNÁMKA :Pokud spustíte jiný příkaz pomocí nohup, výstup se připojí k existujícímu souboru nohup.out. Při spouštění více příkazů ze stejného adresáře buďte opatrní, protože veškerý výstup je odeslán do stejného souboru nohup.out, což může být matoucí.

Spuštění nohup s určením výstupního souboru

Nyní lze výše uvedený skript také spustit příkaz nohup a zadat vlastní výstupní soubor, jak je znázorněno níže:

# nohup script.sh > /tmp/script.out 2>&1
[1] 14235

Závěr

Pokud spouštíte proces a myslíte si, že nebude dokončen v době, kdy se pro daný den odhlásíte, použijte příkaz nohup. Nohup bude pokračovat ve zpracování, když opustíte svůj účet. Nohup znamená nezavěšovat .


Linux
  1. Příklady příkazů času Linux

  2. 12 UNIX / Linux Příklady možností výstupního formátu časového příkazu

  3. Příklady příkazů tee v Linuxu

  1. Příkaz Nohup s příklady

  2. 20 Příkazy OpenSSL Příklady, které musíte znát

  3. Spuštění linuxového příkazu z pythonu

  1. Linux pinky Command Tutorial pro začátečníky (8 příkladů)

  2. 4 způsoby, jak zjistit jádro CPU, na kterém běží konkrétní proces v Linuxu

  3. Zde je vše, co můžete dělat s Nmap – Příklady příkazů