Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
docker:docker-compose:run [2021/09/16 01:48] werwolf |
docker:docker-compose:run [2023/01/12 12:18] (текущий) |
||
|---|---|---|---|
| Строка 8: | Строка 8: | ||
| docker-compose run parser_nodejs node /var/www/parsers/wb/index clear > /dev/null 2>&1 & | docker-compose run parser_nodejs node /var/www/parsers/wb/index clear > /dev/null 2>&1 & | ||
| </code> | </code> | ||
| - | |||
| - | |||
| - | Главная | ||
| - | Инструкции | ||
| - | Как запустить процесс в фоне Linux | ||
| - | Как запустить процесс в фоне Linux | ||
| - | Инструкции Обновлено: 20 ноября, 2019 10 ellado | ||
| - | |||
| - | Как правило, выполнение команд в терминале связано с одним неудобством — прежде чем приступить к вводу следующей команды, следует дождаться выполнения предыдущей. Это происходит, поскольку текущий процесс блокирует доступ к оболочке операционной системы и в таких случаях говорят, что команда выполняется на переднем плане. Что же делать, если нужно запустить несколько команд одновременно? Есть несколько решений. Первое и наиболее очевидное — открыть дополнительное окно терминала. Второе — инициировать выполнение команды в фоновом режиме. | ||
| - | |||
| - | Если какой-либо процесс происходит в фоновом режиме, это значит, что он не предусматривает взаимодействия с пользователем, следовательно, доступ к оболочке остается свободным. Прочитав эту статью, вы узнаете как запустить процесс в фоне Linux и что делать, чтобы их выполнение не прерывалось после закрытия терминала. | ||
| - | |||
| - | Содержание статьи: | ||
| - | |||
| - | Как запустить процесс в фоне Linux | ||
| - | Как перевести процесс в фоновый режим | ||
| - | Работа процессов в фоне | ||
| - | Выводы | ||
| - | |||
| - | Как запустить процесс в фоне Linux | ||
| - | |||
| - | Для выполнения команды в фоновом режиме достаточно добавить в конце символ амперсанда (&): | ||
| - | |||
| - | command & | ||
| - | |||
| - | В выводе терминала будут отображены порядковый номер задачи (в квадратных скобках) и идентификатор процесса: | ||
| - | |||
| - | В фоновом режиме можно одновременно запускать сразу два, три, четыре процесса и даже больше. | ||
| - | |||
| - | Работая в фоновом режиме, команда все равно продолжает выводить сообщения в терминал, из которого была запущена. Для этого она использует потоки stdout и stderr, которые можно закрыть при помощи следующего синтаксиса: | ||
| - | |||
| - | command > /dev/null 2>&1 & | ||
| - | |||
| - | Здесь >/dev/null 2>&1 обозначает, что stdout будет перенаправлен на /dev/null, а stderr — к stdout. | ||
| - | |||
| - | Узнать состояние всех остановленных и выполняемых в фоновом режиме задач в рамках текущей сессии терминала можно при помощи утилиты jobs c использованием опции -l: | ||
| - | |||
| - | jobs -l | ||
| - | |||
| - | Вывод содержит порядковый номер задачи, идентификатор фонового процесса, состояние задачи и название команды, которая запустила задание. | ||
| - | |||
| - | В любое время можно вернуть процесс из фонового режима на передний план. Для этого служит команда fg: | ||
| - | |||
| - | fg | ||
| - | |||
| - | Если в фоновом режиме выполняется несколько программ, следует также указывать номер. Например: | ||
| - | |||
| - | fg %1 | ||
| - | |||
| - | Для завершения фонового процесса применяют команду kill с номером программы: | ||
| - | |||
| - | kill %1 | ||
| - | |||
| - | Как перевести процесс в фоновый режим | ||
| - | |||
| - | Если изначально процесс был запущен обычным способом, его можно перевести в фоновый режим, выполнив следующие действия: | ||
| - | DevOps | ||
| - | |||
| - | Остановить выполнение команды, нажав комбинацию клавиш Ctrl+Z. | ||
| - | Перевести процесс в фоновый режим при помощи команды bg. | ||
| - | |||
| - | bg | ||
| Работа процессов в фоне | Работа процессов в фоне | ||