logo

Polecenie nohup w systemie Linux z przykładami

Każde polecenie w Linuksie rozpoczyna proces w momencie jego wykonania, który automatycznie kończy się po wyjściu z terminala. Załóżmy, że wykonujesz programy przez SSH i jeśli połączenie zostanie zerwane, sesja zostanie zakończona, wszystkie wykonywane procesy zostaną zatrzymane i możesz napotkać ogromny, przypadkowy kryzys. W takich przypadkach bardzo pomocne dla użytkownika może być uruchamianie poleceń w tle i właśnie w tym miejscu polecenie Nohup pojawia się na zdjęciu. nohup (bez rozłączania się) to polecenie w systemach Linux, które uruchamia proces nawet po wylogowaniu się z powłoki/terminalu.

Komenda Nohup

Zwykle do każdego procesu w systemach Linux wysyłany jest plik a SIGHUP (rozłączenie sygnału) który odpowiada za zakończenie procesu po zamknięciu/wyjściu z terminala. Polecenie Nohup uniemożliwia procesowi otrzymanie tego sygnału po zamknięciu lub wyjściu z terminala/powłoki. Po uruchomieniu lub wykonaniu zadania za pomocą polecenia Nohup, stdin nie będą dostępne dla użytkownika i nie.out plik jest używany jako plik domyślny dla standardowe wyjście I stderr . Jeśli dane wyjściowe polecenia Nohup zostaną przekierowane do innego pliku, nie.out plik nie jest generowany.



Składnia polecenia Nohup

Składnia polecenia Nohup jest prosta:

zdjęcia z icloud na Androida
nohup command [options] &>
  • `command`> : Określa polecenie lub skrypt, który chcesz wykonać.
  • `[options]`> : Opcjonalne argumenty lub flagi modyfikujące zachowanie polecenia.
  • `&`> : Umieszczenie znaku ampersand (&) na końcu polecenia instruuje powłokę, aby uruchomiła polecenie w tle.

Praca z poleceniem Nohup

Sprawdzanie wersji Nohup

Sprawdzenie wersji Nohup jest prostym procesem. Zazwyczaj możesz sprawdzić wersję Nohup zainstalowaną w twoim systemie, używając pliku ` --version`> flaga. Po prostu wykonaj następujące polecenie:



nohup --version>

Wyjście:

Rozpoczynanie procesu za pomocą Nohup

Aby rozpocząć proces za pomocą Nohup, po prostu dołącz żądane polecenie za pomocąnohup>. Na przykład, jeśli chcesz wykonać skrypt bash o nazwiegeekfile.py>używając Nohup, użyj następującego polecenia:



nohup bash geekfile.sh>

Wyjście:

cm na stopy i cale

Aby przekierować wyjście do wyjście.txt plik:

nohup bash geekfile.sh>wynik.txt>

Wyjście:

Uruchamianie procesu w tle za pomocą Nohup

Aby uruchomić polecenie w tle, należy kliknąć „ &’ symbol jest dołączany na końcu polecenia. Po wykonaniu nie powraca do wiersza poleceń powłoki po uruchomieniu polecenia w tle. Można go przywrócić na pierwszy plan za pomocą fot Komenda.

nohup bash geekfile.sh & fg>

Wyjście:

Notatka: Liczba w nawiasach kwadratowych oznacza identyfikator pracy a liczba obok to identyfikator procesu .

q2 miesiące

Aby uruchomić wiele poleceń w tle

Komendy Nohup można używać do uruchamiania wielu poleceń w tle.

nohup bash -c 'commands'>

Przykład:

nohup bash -c 'cal && ls'>

Wyjście:

Tutaj dane wyjściowe będą domyślnie przechowywane w nie.out . Aby przekierować, wpisz:

nohup bash -c 'commands'>nazwapliku.txt>

Przykład:

nohup bash -c 'cal && ls'>wynik.txt>

Wyjście:

metoda podciągu w Javie

Polecenie nohup w systemie Linux – często zadawane pytania

Co to jest nohup> polecenie w systemie Linux i do czego służy?

The nohup> polecenie oznacza brak rozłączania się. Umożliwia uruchomienie polecenia lub skryptu powłoki w taki sposób, aby działał nawet po wylogowaniu lub zamknięciu terminala. Zapobiega to zakończeniu polecenia po zakończeniu sesji terminala.

ciąg Java na znak

Jak korzystać z nohup> Komenda?

Używać nohup> , po prostu dołącz go do polecenia, które chcesz uruchomić. Na przykład:

nohup command_to_run &>

The &> symbol na końcu umieszcza polecenie w tle, umożliwiając dalsze korzystanie z terminala podczas wykonywania polecenia.

Gdzie nohup> wysłać wynik polecenia?

Domyślnie, nohup> przekierowuje zarówno standardowe wyjście (stdout), jak i standardowe wyjście błędów (stderr) do pliku o nazwie nohup.out> w bieżącym katalogu. W razie potrzeby możesz określić inny plik wyjściowy.

Mogę uzyć nohup> za pomocą interaktywnych poleceń lub programów?

Chwila nohup> jest zwykle używany z nieinteraktywnymi poleceniami lub skryptami, można go używać z interaktywnymi poleceniami. Jednak zachowanie może być nieprzewidywalne, szczególnie jeśli polecenie oczekuje danych wejściowych od użytkownika. Ogólnie zaleca się unikanie używania nohup> z programami interaktywnymi.

Jak mogę sprawdzić status polecenia uruchomionego z nohup> ?

Od nohup> uruchamia polecenie w tle, możesz użyć standardowych narzędzi systemu Linux, takich jak ps> Lub top> aby sprawdzić status procesu. Na przykład:

ps aux | grep>

Spowoduje to wyświetlenie informacji o procesie, w tym jego PID (ID procesu), których możesz następnie użyć do zarządzania poleceniem lub monitorowania go.

Wniosek

W systemie Linux uruchomienie polecenia zwykle kończy się po zamknięciu terminala. Ale z nohup> , możesz kontynuować jego działanie nawet po zamknięciu terminala. Jest to bardzo przydatne, zwłaszcza jeśli zdalnie uruchamiasz polecenia i nie chcesz, aby były zatrzymywane w przypadku zerwania połączenia.nohup>działa poprzez osłanianie poleceń przed sygnałami, które normalnie by je zatrzymały. Po prostu dodajesznohup>przed twoim rozkazem, i to trwa. Możesz także wysłać dane wyjściowe polecenia do pliku. Pamiętaj tylko, że najlepiej sprawdza się w przypadku zadań nieinteraktywnych, a status swojego polecenia możesz sprawdzić za pomocą narzędzi takich jakps>. Więc,nohup>jest jak siatka zabezpieczająca dla Twoich poleceń, zapewniająca, że ​​będą one kontynuowane nawet wtedy, gdy nie patrzysz.