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

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

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

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

решение1

Вы можете запустить «bg», чтобы запустить его в фоновом режиме.

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

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

решение2

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

например

мояпрограмма &

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

мояпрограмма > ~/program.log 2>&1 &

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

решение3

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

[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 ~]$ 

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

решение4

Другой вариант - отличныйэкранутилита, которая может быть использована для запуска многих процессов одновременно, без необходимости держать терминал открытым. Она также обеспечивает гораздо более легкую интерактивность, чем bg и fg.

Связанный контент