it-swarm-ru.tech

Как отправить задания на задний план, не останавливая их?

Ctrl + z отправляет текущее задание в фоновый режим, но останавливает его.

А как возобновить остановленную работу?

10
Jader Dias

вы можете запустить "BG", чтобы запустить его в фоновом режиме.

"FG" перемещает его на передний план

Обратите внимание, что bg и fg принимают № задания вместо PID, поэтому, если у вас запущено несколько заданий одновременно, используйте команду "jobs", чтобы получить номера заданий.

17
Matt Simmons

вы также можете запустить программу как фоновое задание с "&" в командной строке.

например.

 myprogram & 

обратите внимание, что выходные данные (как stdout, так и stderr) по-прежнему будут идти к текущему tty, поэтому обычно рекомендуется перенаправить в/dev/null или в файл журнала, например, так:

 myprogram> ~/program.log 2> & 1 & 

в любом примере это фоновая работа, как и любая другая, поэтому вы все равно можете вернуть ее на передний план с помощью 'fg' (но если вы перенаправили вывод, вы не увидите много).

8
cas

В bash ввод "bg" переводит задание в фоновый режим до тех пор, пока оно не заблокирует ввод данных. Он будет продолжать выводить в STDERR и STDOUT, что может быть бесполезно. Вы можете ввести "fg", чтобы вернуть задание на передний план.

[[email protected] ~]$ cp ~/crap/* ~/crap2 
(Ctrl-Z)
[1]+  Stopped                cp ~/crap ~/crap2 

[[email protected] ~]$ cp ~/crap3/* ~/crap4
(Ctrl-Z)
[2]+  Stopped                cp ~/crap3/* ~/crap

[[email protected] ~]$ jobs
[1]+  Stopped                cp ~/crap ~/crap2 
[2]+  Stopped                cp ~/crap3/* ~/crap

[[email protected] ~]$ bg 1
[1]- cp ~/crap ~/crap2 &
[1]-  Exit 1                  cp ~/crap ~/crap2 

[[email protected] ~]$ fg 2
[[email protected] ~]$ 

Итак, это было начало длинного задания на копирование и его приостановка, запуск второго длинного задания на копирование и его приостановка, затем помещение первого задания на копирование в фоновый режим и запуск его с последующим выходом из этого первого задания на копирование. Затем я поставил последнее задание на копирование и позволил ему закончить.

5
Evan Anderson

Nohup task.sh &

Работает в фоновом режиме, вывод идет в Nohup.out в текущем каталоге. Продолжает работать при выходе из системы.

4
Craig

Другой вариант - отличная утилита screen , которую можно использовать для одновременного запуска многих процессов без необходимости держать терминал открытым. Это также позволяет гораздо проще интерактивности, чем BG и FG.

2
Hay