Jak rozpocząć polecenie Linux w tle i odłączyć proces w terminalu

Jak rozpocząć polecenie Linux w tle i odłączyć proces w terminalu

W tym przewodniku ujawnimy prostą, ale ważną koncepcję obsługi procesu w systemie Linuksa, to znaczy całkowicie odłączyć proces od jego terminalu kontrolnego.

Gdy proces jest powiązany z terminalem, mogą wystąpić dwa problemy:

  1. Twój terminal sterujący jest wypełniony tak dużą ilością danych wyjściowych i komunikatów błędów/diagnostycznych.
  2. W przypadku zamknięcia terminalu proces wraz z procesami dziecięcymi zostanie zakończony.

Aby poradzić sobie z tymi dwoma problemami, musisz całkowicie odłączyć proces od terminalu kontrolnego. Zanim faktycznie przeprowadzimy się, aby rozwiązać problem, krótko omówmy, jak uruchomić procesy w tle.

Jak rozpocząć proces Linux lub polecenie w tle

Jeśli proces jest już wykonywany, taki jak przykład polecenia TAR poniżej, po prostu naciśnij Ctrl+z Aby go zatrzymać, a następnie wprowadź polecenie BG kontynuować wykonanie w tle jako zadanie.

Możesz wyświetlić wszystkie swoje zadania w tle, wpisując Oferty pracy. Jednak to stdin, Stdout, Stderr są nadal połączone z terminalem.

$ tar -czf dom.smoła.GZ . $ BG $ Jobs 
Uruchom polecenie Linux na tle

Możesz również uruchomić proces bezpośrednio z tła za pomocą ampersand, I podpisać.

$ tar -czf dom.smoła.GZ . & $ oferty pracy 
Rozpocznij proces Linux na tle

Spójrz na poniższy przykład, chociaż polecenie TAR zostało uruchomione jako zadanie w tle, komunikat o błędzie był nadal wysłany do terminala, co oznacza, że ​​proces jest nadal podłączony do terminalu kontrolującego.

$ tar -czf dom.smoła.GZ . & $ oferty pracy 
Proces Linux działający w komunikacie w tle

Utrzymuj procesy Linux działać po wyjściu

Użyjemy zapierać się polecenie, jest używane po uruchomieniu procesu i umieszczonym w tle, jego praca polega na usunięciu zadania powłoki z aktywnych zadań listy Shell, dlatego nie będziesz używać FG, BG Polecenia na tej konkretnej pracy.

Ponadto, kiedy zamkniesz terminal sterujący, zadanie nie zawiesi się ani nie wyśle Wzdychanie Do każdej pracy dziecięcej.

Sugerowane przeczytanie: 5 sposobów na utrzymanie zdalnych sesji i procesów SSH

Spójrzmy na poniższy przykład użycia Diswon Bash wbudowana funkcja.

$ sudo rsync szablony/*/var/www/html/files/& $ $ $ DESIN -H %1 $ $ 
Uruchom proces Linux po zamknięciu terminalu

Możesz także użyć Nohup Polecenie, które umożliwia również proces kontynuowania działania w tle, gdy użytkownik wyjdzie z powłoki.

$ nohup tar -czf ISO.smoła.Szablony GZ/* & $ 
Umieść proces Linux w tle po zamknięciu powłoki

Odłącz procesy Linuksa od kontrolowania terminalu

Dlatego, aby całkowicie odłączyć proces od terminalu sterującego, użyj poniższego formatu polecenia, jest to bardziej skuteczne dla graficznego interfejsu użytkownika (GUI) Zastosowania takie jak Firefox:

$ Firefox /dev /null & 

W Linux, /dev/null to specjalny plik urządzenia, który zapisuje (pozbywa się) wszystkie zapisane do niego dane w powyższym polece /dev/null.

Sugerowane przeczytanie: 10 Przykłady polecenia ekranu w celu odłączenia sesji terminalowych

Jako uwaga końcowa, pod warunkiem, że proces jest podłączony do terminalu kontrolującego, jako użytkownik, zobaczysz kilka linii wyjściowych danych procesu, a także komunikaty o błędach na terminalu. Ponownie, kiedy zamkniesz terminal kontrolny, proces procesów i dzieci zostaną zakończone.

Co ważne, w przypadku wszelkich pytań lub uwag na ten temat, skontaktuj się z nami, korzystając z poniższego formularza komentarza.