Как выполнить задачу в фоновом режиме? [дубликат]

На этот вопрос уже есть ответ здесь:

Можно ли запустить задачу или сценарий, запущенные с терминала в фоновом режиме?

3
задан 18 December 2014 в 12:40

4 ответа

Существует несколько ответов здесь, в зависимости от того, что Вы хотите (этот ответ действителен в bash и zsh оболочки, другие могут варьироваться).

Если необходимо выполнить команду в фоне, и Вы знаете это прежде, чем выполнить его, просто добавляете a & в конце команды (использование sleep 60, ничего не сделайте в течение 1 минуты как команда в качестве примера):

[romano:~] % sleep 60 &
[1] 9054
1& [romano:~] %

Если Вы уже выполнили его, можно остановить его с ctrl-Z, и когда оболочка дает Вам подсказку, Вы можете фон это с командой bg:

1& [romano:~] % sleep 60  
^Z
[1]  + 9084 suspended  sleep 60
1z [romano:~] 20 % bg
[1]  + 9084 continued  sleep 60
1& [romano:~] % 

В обоих случаях процесс/задание все еще присоединен к Вашему терминалу; при закрытии терминала, зависание (ПОНУКАЕТ) сигнал, отправляется в процесс---, большая часть процесса корректно выйдет затем. Если необходимо удостовериться, что процесс продолжится, можно или запустить его с:

nohup sleep 60 & 

или, отправив это в фон с bg или с простым &, скажите оболочке забывать об этом, с:

disown %% 

(%% ярлык управления заданиями и здесь обозначает последний процесс, отправленный в фоне).

Затем необходимо принять во внимание вывод процесса---в первых двух случаях, вывод все еще прибудет в терминал; в случае nohup это будет отклонено на названном файле nohup.out, и в последнем случае (с disown) это перейдет к терминалу, если Вы не закроете его, в этом случае поведение довольно не определено. Это - хорошая практика для заботы самостоятельно о выводе фонового процесса с помощью перенаправления.

8
ответ дан 1 December 2019 в 12:56

добавьте & к команде.

Пример:

$ cp FromA ToB &
5
ответ дан 17 November 2019 в 09:09

Этот пример выполнит обновления в фоновом режиме:

sudo apt-get dist-upgrade -y &

Просто отмечают ожог &.
, Если Вы хотите скрыть stdout, сделайте следующее:

sudo apt-get dist-upgrade -y > /dev/null &
2
ответ дан 17 November 2019 в 09:09

Если Вы хотите его более усовершенствованный, и хотите быть в состоянии использовать сессию позже локально или SSH, можно использовать экран.

# screen
# apt-get update -y

Тогда нажатие CTRL + , сопровождаемый D .

Позже можно повторно прикрепить:

# screen -rd
1
ответ дан 17 November 2019 в 09:09

Другие вопросы по тегам:

Похожие вопросы: