Jak rozpocząć polecenie Linux w tle i odłączyć proces w terminalu
 
                - 4397
- 265
- Roland Sokół
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:
- Twój terminal sterujący jest wypełniony tak dużą ilością danych wyjściowych i komunikatów błędów/diagnostycznych.
- 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
 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
 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
 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
 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
 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.
- « Jak zainstalować lampę z php 7 i mariadb 10 na Ubuntu 16.10
- Instalacja Ubuntu 16.10 (yakkety yak) »
 
                    