Umieszczanie procesu w tle bez zatrzymywania go - (Ctrl + Z)?

16

Jeśli rozpocznę proces, wpisując go normalnie w wierszu polecenia, np

wget http://site.com/bigfile.zip

a następnie zdecyduję, że chcę przenieść to na tło, wiem, że mogę użyć czegoś takiego, ctrl+za następnie bg 1(lub jobsnajpierw, jeśli to konieczne, aby uzyskać identyfikator), aby umieścić to w tle.

Moje pytanie brzmi, czy istnieje sposób na przeniesienie zadania z pierwszego planu bezpośrednio na tło bez zatrzymywania go - podobnie jak inny skrót, ctrl+zktóry by to zrobił.

Zdaję sobie również sprawę, że mogę dołączyć &na końcu oryginalnej komendy, aby uruchomić ją w tle, ale pytanie dotyczy tego, kiedy zaczynasz proces na pierwszym planie, a potem zdaję sobie sprawę, że chcesz przenieść go w tło.

cwd
źródło

Odpowiedzi:

14

Tak, absolutnie: screen (1) jest odpowiedzią.

Aby rozpocząć, dodaj screen -Rdo ~ / .bash_profile lub równoważny, wyloguj się i zaloguj ponownie.

Aby kontynuować to, co działa w tle, naciśnij klawisze Control-A, a następnie N. Spowoduje to utworzenie nowego ekranu terminala na pierwszym planie, jednocześnie płynnie kontynuując proces uruchamiania w tle.

Naciśnij Control-A, a następnie „, aby uzyskać interaktywną listę otwartych ekranów, lub naciśnij Control-A, a następnie liczbę, aby przejść bezpośrednio do określonego ekranu.

Pierwotnym wymaganiem była możliwość przeniesienia procesu do tła bez zatrzymywania go. Ekran ma dwie dodatkowe zalety, które są ogromne, jeśli chcesz robić wiele rzeczy naraz:

  1. Możesz przełączać się między procesami znacznie płynniej niż przy użyciu Control-Z, bg, fg itp.
  2. Jeśli twoja sesja terminalowa zostanie rozłączona, twoje procesy (jak wget http://example.com/bigfile.iso) NIE zostaną zakończone! Wszystkie twoje sesje powłoki będą tam czekały na ciebie po ponownym połączeniu.

Aby uzyskać więcej informacji, przeczytaj stronę ekranową (1) lub Podręcznik ekranowy GNU .

Podniebny Jastrząb
źródło
1
Tylko upewnij się, że masz screenzainstalowany pakiet jako pierwszy :)
George Tasioulis