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
- Rozpoczynanie procesu za pomocą Nohup
- Uruchamianie procesu w tle za pomocą Nohup
- Aby uruchomić wiele poleceń w tle
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 nazwienohup.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żywanianohup>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 jakps>Lubtop>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.