Czy mogę zmienić nazwę „nohup.out”?


254

Kiedy uruchamiam nohup some_command &, wyjście przechodzi do nohup.out; man nohupmówi, aby spojrzeć na to, info nohupco z kolei mówi:

Jeśli standardowym wyjściem jest terminal, standardowe wyjście polecenia jest dołączane do pliku „nohup.out”; jeśli nie można tego zapisać, jest on dołączany do pliku „$ HOME / nohup.out”; a jeśli nie można tego zapisać, polecenie nie jest uruchamiane.

Ale jeśli mam już jedną komendę używającą nohupwyjścia /nohup.outi chcę uruchomić inną nohupkomendę, czy mogę przekierować dane wyjściowe do nohup2.out?

Odpowiedzi:


416
nohup some_command &> nohup2.out &

i voila.


Starsza składnia dla wersji Bash <4:

nohup some_command > nohup2.out 2>&1 &

4
@ismail, jeśli rozumiem, przekierowuje to wyjście ze stdout i nohup.out do nohup2.out. Co wtedy robi 2>&1&?
David LeBauer,

12
2>&1przekierowuje stderrdo tego samego pliku wyjściowego, stdoutco w tym przypadkunohup2.out
ismail

17
W Bash 4 dwa przekierowania można skrócić jako jeden &> nohup2.out.
ephemient

1
Próbowałem &> nohup2.out i działa, ale jak możesz powiedzieć, że masz wersję bash?
monkut

9
@monkut bash version
Ismail

58

Z jakiegoś powodu powyższa odpowiedź nie działała dla mnie; Nie wróciłem do wiersza polecenia po uruchomieniu, jak się spodziewałem z końcowymi &. Zamiast tego po prostu spróbowałem

nohup some_command > nohup2.out&

i działa tak, jak chcę. Pozostawiając to tutaj, na wypadek, gdyby ktoś był w takiej samej sytuacji. Uruchomienie Bash 4.3.8 w celach informacyjnych.


12

Ponieważ procedury obsługi plików wskazują na i-węzły (które są przechowywane niezależnie od nazw plików) w systemach Linux / Unix, możesz zmienić nazwę domyślną nohup.outna inną nazwę pliku w dowolnym momencie po uruchomieniu nohup something&. Więc można również wykonać następujące czynności:

$ nohup something&
$ mv nohup.out nohup2.out
$ nohup something2&

Teraz somethingdodaje linie do nohup2.outi something2do nohup.out.


10

Powyższe metody usuwają dane pliku wyjściowego za każdym razem, gdy uruchomisz komendę nohup.

Aby dołączyć dane wyjściowe do pliku zdefiniowanego przez użytkownika , możesz użyć >>polecenia nohup.

nohup your_command >> filename.out &

To polecenie doda wszystkie dane wyjściowe do pliku bez usuwania starych danych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.