Jak uruchomić polecenie w tle na Linux

Jak uruchomić polecenie w tle na Linux

Uruchomienie poleceń lub procesów w tle w systemie Linux staje się wspólnym zadaniem, jeśli potrzebujesz zwolnić terminal lub odłączyć się od sesji SSH. Jest to szczególnie prawdziwe w przypadku poleceń, które działają przez długi czas, aby słuchać wydarzeń, albo wykonać swoje długie zadanie.

Mamy kilka opcji w Linux do uruchamiania poleceń w tle. W tym przewodniku omówimy kilka różnych metod i pokażemy, jak je używać za pomocą przykładów.

W tym samouczku nauczysz się:

  • Jak umieścić polecenie działające na tle
  • Jak rozpocząć polecenie w tle
  • Jak zamknąć terminal i utrzymać pracę w tle
  • Jak używać polecenia ekranu
Umieszczenie procesu na tle i przeniesienie go na pierwszy plan Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Każda dystrybucja Linux
Oprogramowanie Domyślne narzędzia Linux, ekran
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Umieść polecenie działające w tle

Kiedy wykonujesz polecenie, które chce nadal działać przez długi czas, problem polega na tym, że Twój bieżący terminal jest poświęcony poleceniu. Nie możesz kontynuować korzystania z terminalu, a także nie możesz go zamknąć, ponieważ zakończy to polecenie, które obecnie jest uruchomione.

Jeśli masz uruchomione polecenie i musisz umieścić je na tle, aby zwolnić terminal, możesz nacisnąć Ctrl + z na klawiaturze, aby zatrzymać proces. Oto przykład.

$ sleep 10000 ^z [1]+ Zatrzymałem sen 10000 

Aby zobaczyć listę zadań w tle, użyj Oferty pracy Komenda.

$ Jobs -l [1]+ 1650 Zatrzymał sen 10000 


Aby przywrócić pracę na pierwszy plan, możemy użyć FG Komenda.

$ fg 

Gdybyśmy mieli wiele zatrzymanych miejsc pracy, musielibyśmy użyć znaku procentowego i określić identyfikator zadania, aby przywrócić odpowiedni na pierwszy plan.

$ FG %1 

Świetnie, teraz możemy umieścić procesy w tle i sprowadzić je z powrotem, gdy chcemy je później. Ale co, jeśli chcemy, aby polecenie kontynuowało wykonywanie, gdy jest w tle? W tym celu możemy użyć BG polecenie, a następnie ampersand i identyfikator zadania. Poniższe polecenie sprawi, że nasze zatrzymane zadanie wznowi, zachowując je w tle.

$ BG %1 [1]+ Sleep 10000 & 

Teraz widzimy, że proces ten jest nadal w tle, ale pokazuje status „uruchamiania” zamiast „zatrzymanego."

$ Jobs -L [1]+ 1650 Up Sleep 10000 & 

Nadal należy pamiętać. Nie możesz zamknąć swojego obecnego terminalu, albo te zadania w tle zamykają. Jeśli chcesz zamknąć terminal i nie chcesz, aby te polecenia się zatrzymały, musisz „odrzucić” zadanie (. Jeśli masz tylko jedno zadanie w tle, następujące polecenie zadziała:

$ odejście 

Jeśli masz wiele, musisz określić identyfikator zadania.

$ Odnotowanie %1 

Nie zobaczysz już zadania w tabeli zadań, gdy wykonasz Oferty pracy Komenda. Teraz bezpiecznie jest zamknąć terminal, a twoje polecenie będzie kontynuowane.

$ Jobs -l 

Nadal możesz mieć oko na swoje polecenie, używając polecenia PS.

$ ps aux | Grep sleep Linuxco+ 1650 0.0 0.0 8084 524 pkt/0 S 12:27 0:00 Sleep 10000 

A jeśli chcesz powstrzymać uruchomienie polecenia, możesz użyć polecenia Kill i określić identyfikator procesu.

$ Kill 1650 

Rozpocznij polecenie w tle

Teraz widzieliśmy, jak umieścić proces działający w tle i przypomnieć mu później. Ale mamy również opcję rozpoczęcia polecenia w tle na początku. Wszystko, co musisz zrobić, to umieścić ampersand na końcu dowolnego polecenia Linux.

$ sleep 10000 i [1] 1900 


Tak jak poprzednio, możemy zobaczyć zadanie wymienione w Oferty pracy Komenda. Tym razem jednak praca już działa i nie musieliśmy ręcznie zaczynać w tle.

$ Jobs -l [1]+ 1900 Uruchamianie 10000 i 

Zamknij terminal i utrzymuj pracę w tle

Widzieliśmy już w poprzednim przykładzie, w jaki sposób możemy użyć zapierać się polecenie, aby upewnić się, że polecenie trwa po zamknięciu naszego terminala. Inną opcją jest Nohup Komenda.

Nohup mówi procesowi ignorowanie każdego Wzdychanie (Hangup) Sygnały, które otrzymuje. Sygnał westchnienia jest wysyłany do zadania w tle, gdy bieżący terminal jest zamknięty. W ten sposób możemy mieć pracę w tle, zamknąć terminal i nadal widzieć, jak działa w tle. Oto przykład.

$ nohup sleep 10000 i [1] 1908 Nohup: ignorowanie danych wejściowych i dołączania wyjścia do „Nohup.na zewnątrz' 

Zamknęliśmy terminal i ponownie go otworzyliśmy, a następnie przeprowadziliśmy następujące polecenie, które pokazuje, że polecenie wciąż działa.

$ ps aux | Grep sleep Linuxco+ 1908 0.0 0.0 8084 524 ? S 13:05 0:00 Sleep 10000 

Korzystanie z polecenia ekranu

Do tej pory omówiliśmy domyślne metody Linux dla uruchamiania poleceń w tle. Istnieją jednak również dodatkowe pakiety oprogramowania, które można użyć. Być może najbardziej popularnym byłoby polecenie ekranu.

Możesz zobaczyć wspomniany link do instrukcji instalacji i szczegółowego użycia, ale jego sedno jest takie:

  1. Uruchom ekran polecenie, aby rozpocząć nowy „ekran”. Opcjonalnie dołącz -S Opcja nadanie mu nazwy.
    $ screen -s myCommand 
  2. W nowej sesji ekranu wykonaj polecenie lub skrypt, który chcesz umieścić w tle.
    $/ścieżka/do/myscript.cii 
  3. Naciskać Ctrl + a na klawiaturze, a potem D. To odłączy ekran, a następnie możesz zamknąć terminal, wylogować sesję SSH itp., A ekran będzie się utrzymywał. Aby zobaczyć listę ekranów, użyj tego polecenia.
    $ ekran -ls jest ekran: 2741.MyCommand (04/08/2021 01:13:24 PM) (odłączony) 1 gniazdo w/run/screen/s-linuxconfig. 


  4. Aby ponownie zarejestrować ekran, użyj następującego polecenia, zastępując poniższy numer własnym identyfikatorem procesu.
    $ ekran -r 2741 

Zamykanie myśli

W tym przewodniku widzieliśmy kilka różnych metod uruchamiania polecenia w tle na Linux. Obejmowało to domyślne narzędzia Linux i polecenie ekranu. Widzieliśmy także, jak zarządzać procesem w tle, przenosząc zadania na pierwszym planie, ponowne przesyłanie ekranów i zabijanie procesów w tle.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
  • Jak obsługiwać zdarzenia ACPI w Linux
  • Podstawowe polecenia Linux
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Zainstaluj Arch Linux na stacji roboczej VMware
  • Pobierz Linux
  • Rzeczy do zainstalowania na Ubuntu 22.04