Jak wysyłać zadania do tła bez ich zatrzymywania?

10

Ctrl + z wysyła bieżące zadanie do tła, ale je zatrzymuje.

A jak wznowić zatrzymaną pracę?

Jader Dias
źródło

Odpowiedzi:

17

możesz uruchomić „bg”, aby uruchomić go w tle.

„fg” przenosi go na pierwszy plan

Zauważ, że bg i fg przyjmują numery zadań zamiast PID, więc jeśli masz wiele uruchomionych zadań jednocześnie, użyj polecenia „jobs”, aby uzyskać numery zadań.

Matt Simmons
źródło
8

możesz także uruchomić program jako zadanie w tle z „&” w wierszu poleceń.

na przykład

mój program i

zwróć uwagę, że dane wyjściowe (zarówno stdout, jak i stderr) nadal będą przechodzić do bieżącego tty, więc ogólnie dobrym pomysłem jest przekierowanie do / dev / null lub do pliku dziennika, na przykład:

mójprogram> ~ / program.log 2> i 1 &

w obu przypadkach jest to praca w tle, jak każda inna, więc nadal możesz przenieść ją na pierwszy plan za pomocą „fg” (ale jeśli przekierowałeś wyjście, nie zobaczysz dużo).

cas
źródło
5

W bash wpisanie „bg” umieszcza zadanie w tle, dopóki nie zablokuje potrzeby wprowadzania danych. Będzie nadal wyświetlać dane wyjściowe do STDERR i STDOUT, co może być nieprzydatne. Możesz wpisać „fg”, aby przenieść zadanie z powrotem na pierwszy plan.

[adjuster@mx02 ~]$ cp ~/crap/* ~/crap2 
(Ctrl-Z)
[1]+  Stopped                cp ~/crap ~/crap2 

[adjuster@mx02 ~]$ cp ~/crap3/* ~/crap4
(Ctrl-Z)
[2]+  Stopped                cp ~/crap3/* ~/crap

[adjuster@mx02 ~]$ jobs
[1]+  Stopped                cp ~/crap ~/crap2 
[2]+  Stopped                cp ~/crap3/* ~/crap

[adjuster@mx02 ~]$ bg 1
[1]- cp ~/crap ~/crap2 &
[1]-  Exit 1                  cp ~/crap ~/crap2 

[adjuster@mx02 ~]$ fg 2
[adjuster@mx02 ~]$ 

Rozpoczęcie długiego zadania kopiowania i zawieszenie go, rozpoczęcie drugiego długiego zadania kopiowania i zawieszenie go, następnie umieszczenie pierwszego zadania kopiowania w tle i uruchomienie go, a następnie zakończenie pierwszego zadania kopiowania. Następnie umieszczam ostatnią pracę kopiowania na pierwszym planie i pozwalam jej zakończyć.

Evan Anderson
źródło
bg 1i fg 1nie pracujcie dla mnie, ale bg %1i fg %1działajcie.
Alexej Magura
4

nohup task.sh &

Działa w tle, dane wyjściowe trafiają do nohup.out w bieżącym katalogu. Nadal działa po wylogowaniu.

Craig
źródło
2

Inną opcją jest doskonałe narzędzie do ekranowania , którego można używać do uruchamiania wielu procesów jednocześnie, bez konieczności utrzymywania terminala otwartego. Pozwala także na znacznie łatwiejszą interaktywność niż bg i fg.

Siano
źródło