Často používám program Nohup
, takže moje procesy jsou vůči zavěšení imunní. Takže pokud chci, aby byl program program
imunní vůči hangupům, použiji příkaz
Nohup program &
kde &
umístí proces na pozadí.
Když začnu, Nohup
mi dá zprávu:
Nohup: připojuje výstup k `Nohup.out '
Existuje nějaký způsob, jak odeslat výstup do jiného souboru než Nohup.out
? Často chci spouštět mnoho procesů ve stejném adresáři pomocí Nohup
, ale pokud to udělám, veškerý výstup se spojí do jednoho Nohup.out
soubor.
Zdá se, že stránka manuálu (například zde ) nemá možnost specifikovat soubor protokolu. Můžete to prosím potvrdit? Máte také nějaké myšlenky, jak mohu tento problém vyřešit?
GNU coreutils Nohup
man stránka naznačuje, že můžete použít normální přesměrování:
Pokud je standardní vstup terminál, přesměrujte jej z/dev/null. Pokud je standardní výstup terminál, připojte výstup k 'Nohup.out', pokud je to možné, '$ HOME/Nohup.out' jinak. Pokud je standardní chybou terminál, přesměrujte jej na standardní výstup. Chcete-li uložit výstup do FILE, použijte 'Nohup COMMAND> FILE'.
Edit: Nejprve jsem váš odkaz nečetl; můžete mít jinou verzi Nohup
, i když tato část naznačuje, že stále můžete používat normální přesměrování:
Nohup.out The output file of the Nohup execution if
standard output is a terminal and if the
current directory is writable.
Standardní výstup a standardní chybu můžete přesměrovat do různých souborů:
Nohup myprogram > myprogram.out 2> myprogram.err
nebo do stejného souboru:
Nohup myprogram > myprogram.out 2>&1
Přidáním Jim komentář jako odpověď zde pro větší viditelnost.
použijte
Nohup program > program.out &
pro zápis výstupu doprogram.out
namístoNohup.out