wyobraź sobie, że krytyczny proces działa w Twoim systemie i zajmuje dużo czasu. Nagle musisz wylogować się z systemu. Jeśli się wylogujesz, Twoje procesy zostaną zatrzymane, a na pewno będziesz chciał tego uniknąć. Jeśli chcesz, aby twój uruchomiony proces był kontynuowany bez żadnych przerw, potrzebujesz polecenia nohup.

Nohup (oznacza no hangup) jest poleceniem ignorującym sygnał HUP. Możesz się zastanawiać, jaki jest sygnał HUP., Jest to w zasadzie sygnał, który jest dostarczany do procesu, gdy jego powiązana powłoka jest zakończona. Zazwyczaj po wylogowaniu się wszystkie uruchomione programy i procesy zostają zawieszone lub zatrzymane. Jeśli chcemy kontynuować uruchamianie procesu nawet po wylogowaniu lub odłączeniu od bieżącej powłoki, możemy użyć polecenia nohup. Sprawia, że procesy są odporne na sygnały HUP, aby program działał nawet po wylogowaniu. Dzięki nohup nie będziesz już musiał logować się przez długi czas, tylko czekać na zakończenie procesu.,

w tym artykule wyjaśnimy, jak używać polecenia Nohup w różnych scenariuszach w Linuksie.,korzystając z polecenia nohup, użyj następującego polecenia:

$ nohup –help

aby znaleźć informacje o wersji nohup, użyj następującego polecenia:

$ nohup –version

uruchom proces używając nohup

jeśli chcesz, aby polecenie lub proces działał nawet po wyjściu z powłoki, użyj nohup, a następnie polecenia do wykonania:

$ nohup polecenie

Po uruchomieniu powyższego polecenia, wszystkie dane wyjściowe, wraz z komunikatami o błędach, zostaną dodane do nohup.,out plik w katalogu domowym lub w bieżącym katalogu. Teraz, jeśli powłoka jest zamknięta lub wylogujesz się, powyższe polecenie nie zostanie zakończone.

przekierowanie wyjścia do innego pliku

domyślnie, wyjście polecenia nohup jest dodawane do nohup.out file. Aby przekierować to wyjście do innego pliku, użyj> operatora przekierowania, po którym następuje nazwa konkretnego pliku. Na przykład, użyliśmy następującego polecenia, aby zapisać wyjście polecenia nohup do nowego pliku o nazwie „myscript.sh”.

$ sudo nohup./ mn.,sh > myscipt.sh &

Uruchom proces w tle używając Nohup

aby uruchomić i umieścić proces w tle, musisz użyć polecenia nohup w następujący sposób:

$ nohup&

symbol& informuje powłokę o uruchomieniu polecenia w tle. Jest to podobne do powyższego polecenia nohup z tym wyjątkiem, że po zakończeniu sesji natychmiast powraca do wiersza polecenia powłoki. Aby przywrócić go na pierwszy plan, użyj polecenia „fg”.,

wyjście wszystkich wykonywanych poleceń zostanie dołączone do nohup.out file. Plik ten można wyświetlić za pomocą polecenia cat nohup w Terminalu. Liczba 80132 na powyższym zrzucie ekranu wskazuje numer identyfikacyjny procesu (PID) procesu uruchomionego w tle.

Uruchom wiele procesów w tle za pomocą Nohup

możesz uruchomić wiele poleceń w tle za pomocą polecenia nohup. W poniższym przykładzie polecenia mkdir, ping i ls są wykonywane w tle za pomocą polecenia nohup.,

$ nohup bash-c 'pliki mkdir & &
ping-c 1 google.com && ls'> wyjście.txt

Zakończ proces działający w tle

aby zakończyć proces działający w tle, użyj polecenia kill w następujący sposób:

$ kill -9 PID

znajdź PID procesu przy użyciu nohup z „&”., Innym sposobem na znalezienie PID jest polecenie pgrep-A. Na przykład, jeśli uruchomiłeś polecenie Ping z nohup, będzie ono działać w tle, nawet jeśli zamkniesz powłokę. Teraz w tym przypadku, aby znaleźć PID procesu Ping działającego w tle, użyj polecenia:

$ pgrep –a ping

wyświetli listę wszystkich procesów powiązanych z poleceniem Ping.,

teraz, aby zakończyć proces Ping działający w tle, użyj polecenia kill w następujący sposób:$ kill -9 80928So, było to krótkie wprowadzenie polecenia nohup w Linuksie. Polecenie Nohup służy do zapobiegania przerwaniu ważnego procesu po wylogowaniu się lub zamknięciu sesji. Bardzo pomaga, gdy uruchamiasz proces, zwłaszcza skrypty, które zajmują dużo czasu.