GNU/Linux >> Znalost Linux >  >> Linux

nohup:příkaz nenalezen

Příkaz nohup (“no hangup”) zabraňuje ukončení procesu, když se uživatel odhlásí. Pokud například správce spustí záložní skript a poté se odhlásí ze systému, skript se zastaví. Umístěním příkazu nohup před normální příkaz by skript pokračoval i po odhlášení správce.

Syntaxe

Syntaxe příkazu nohup je:

# nohup {command/script}

Pokud při spouštění příkazu nohup narazíte na níže uvedenou chybu:

nohup: command not found

můžete zkusit nainstalovat níže uvedený balíček podle vaší volby distribuce:

Distribuce Příkaz
OS X brew install coreutils
Debian apt-get install coreutils
Ubuntu apt-get install coreutils
Alpine apk add coreutils
Arch Linux pacman -S coreutils
Kali Linux apt-get install coreutils
CentOS yum install coreutils
Fedora dnf install coreutils
Raspbian apt-get install coreutils

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. ifrename:příkaz nenalezen

  2. nc:příkaz nenalezen

  3. netstat:příkaz nenalezen

  1. kubectl:příkaz nenalezen

  2. tvservice:příkaz nenalezen

  3. rm:příkaz nenalezen

  1. Subscription-manager:příkaz nenalezen

  2. mv:příkaz nenalezen

  3. ln:příkaz nenalezen