Bash выполнение команд в фоне

Kaspersky

Некоторые команды Bash могут выполняться в течение длительного времени, так же возможен сценарий параллельной обработки, когда одна команда записывает данные в файлы, вторая их обрабатывает. В любом случае, нет необходимости ждать завершения работы команд или сценариев.

Вместо этого можно запустить любую команду (сценарий) в фоновом режиме, используя оператор &. Сценарий будет выполнятся дальше, но при этом у нас будет возможность использовать оболочку. Конечно никто не запрещает запустить несколько подключений или переключится между терминалами.

Для примеру запустим ping в фоновом режиме.

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

Примечание: символ & отправляет задания в фоновый режим, но стоит обратить внимание что &> символ перенаправленния вывода и ошибок.

ping g-soft.info > /tmp/ping.log &

Что бы посмотреть список зада, которые сейчас выполняются в фоне, используем команду jobs

jobs
[1]+ Running ping g-soft.info > /tmp/ping.log &

Для переключения на задачу (вывести ее из фона), используем команду fg, с номером фонового задания

fg 1
ping g-soft.info > /tmp/ping.log

Если задача сейчас находится в приоритетном режиме, ее можно поставить на пузу (приостановить) сочетанием клавиш CTRL+Z

Для возобновления работы задачи используем команду bg с номером задачи

jobs
[1]- Stopped ping g-soft.info > /tmp/ping.log
[2]+ Stopped ping g-soft.info > /tmp/ping.log
[3] Running ping g-soft.info > /tmp/ping.log &

bg 1
[1]- ping g-soft.info > /tmp/ping.log &

jobs
[1] Running ping g-soft.info > /tmp/ping.log &
[2]+ Stopped ping g-soft.info > /tmp/ping.log
[3]- Running ping g-soft.info > /tmp/ping.log &

 

 

 

 

 

 

Добавить комментарий