Ctrl + z wysyła bieżące zadanie do tła, ale je zatrzymuje.
A jak wznowić zatrzymaną pracę?
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ń.
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).
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ć.
bg 1
ifg 1
nie pracujcie dla mnie, alebg %1
ifg %1
działajcie.nohup task.sh &
Działa w tle, dane wyjściowe trafiają do nohup.out w bieżącym katalogu. Nadal działa po wylogowaniu.
źródło
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.
źródło