- Как запускать команды Linux в фоновом режиме
- 1. Добавьте амперсанд после вашей команды
- 2. Используйте bg для отправки запущенных команд в фоновом режиме
- 3. Отправляйте команды в фоновом режиме с помощью nohup
- 4. Запускайте фоновые команды, используя системные перенаправления
- 5. Настройте выполнение команд Linux в фоновом режиме с помощью disown
- 6. Запускайте команды Linux в фоновом режиме с помощью tmux
- Оставьте свои команды Linux в фоновом режиме
- Как использовать рабочие пространства и активные углы в Linux Mint для повышения производительности
- Изменения Linux за эти годы
- 12 самых безопасных сайтов для загрузки свободного программного обеспечения Linux
- Запуск команд Linux в фоновом режиме (+Видео)
- Видео
- Что такое приоритетный и фоновый режимы
- Как запустить команду в фоновом режиме
- Пример запуска команды в фоновом режиме
- Как вывести задание из фонового режима
- Просмотр заданий, работающих в фоновом режиме
- Перевод задания в фоновый режим
- Заключение
- Запуск команд Linux в фоновом и приоритетном режимах
- Запуск процесса Linux в фоновом режиме напрямую
- Отправка работающего процесса Linux в фоновый режим
- Просмотр всех процессов, работающих в фоновом режиме
- Выводим процесс из фонового режима
Как запускать команды Linux в фоновом режиме
Выполнение команды Linux занимает слишком много времени? Используйте любой из этих шести методов, чтобы отправить его в фоновый режим.
Команды Linux — отличный способ взаимодействия с системой с помощью терминала. Однако иногда для завершения текущей задачи может потребоваться некоторое время. Это заставляет пользователей либо ждать завершения процесса в течение значительного времени, либо вообще создавать новую оболочку.
К счастью, вы можете запускать команды Linux в фоновом режиме, следуя нескольким простым методам.
1. Добавьте амперсанд после вашей команды
Самый простой способ запустить фоновую команду Linux — добавить символ амперсанда ( & ) после команды. Например, если вы запустите текстовый редактор gedit со своего терминала, вы не сможете использовать оболочку, пока не закроете редактор. Однако, когда вы добавите дополнительный & к своей команде, вы сможете сразу же использовать оболочку.
2. Используйте bg для отправки запущенных команд в фоновом режиме
Иногда вы запускаете команду только для того, чтобы узнать, что для ее завершения требуется гораздо больше времени. Вы можете легко отправлять такие команды в фоновом режиме, нажимая клавиши Ctrl + Z , а затем используя команду bg . Нажатие Ctrl + Z останавливает запущенный процесс, и bg переводит его в фоновый режим.
Вы можете просмотреть список всех фоновых задач, введя jobs в терминале. Используйте команду fg , чтобы вернуться к текущей задаче.
3. Отправляйте команды в фоновом режиме с помощью nohup
Команда nohup в Linux позволяет администраторам запускать команды терминала, невосприимчивые к сигналам HUP или Hang Up . Вы можете легко запускать команды в фоновом режиме в Linux с помощью nohup.
В приведенном ниже примере выполняется простое сканирование портов Nmap в фоновом режиме.
Одним из ключевых преимуществ nohup является то, что ваши команды будут выполняться, даже если вы выйдете из командной оболочки. Кроме того, он генерирует файлы журналов выполнения. Найдите nohup.out в текущем каталоге или внутри $HOME .
4. Запускайте фоновые команды, используя системные перенаправления
Вы также можете запускать фоновые команды в Linux, используя системные перенаправления. Например, если вы запустите приведенную ниже команду ping , ваша оболочка выполнит ее в фоновом режиме и немедленно вернет вам управление терминалом.
Здесь вывод команды ping перенаправляется на output.log . Вы можете заменить его на /dev/null , если хотите отменить результат. 2> & 1 сообщает Bash перенаправлять любые ошибки в тот же файл. Последний & сигнализирует о запуске этой команды в фоновом режиме.
5. Настройте выполнение команд Linux в фоновом режиме с помощью disown
Команда disown упрощает запуск процессов в фоновом режиме. Во-первых, вам нужно отправить задачу в фоновый режим с помощью оператора & . Затем введите disown , чтобы отсоединить его от вашей оболочки.
Одним из основных преимуществ disown является то, что, как и nohup, система продолжит выполнение вашей задачи, когда вы закроете свою оболочку или выйдете из системы.
6. Запускайте команды Linux в фоновом режиме с помощью tmux
tmux — это мощный мультиплексор, который позволяет запускать несколько сеансов терминала в одном окне. Изучение того, как использовать и настраивать tmux в Linux, является отличным выбором для людей, которые не знакомы с ним. tmux упрощает выполнение фоновых команд в Linux.
Когда вы запустите приведенную выше команду tmux , она выполнит команду ping в отдельной оболочке и продолжит ее выполнение в фоновом режиме. Вы можете запустить любой процесс или команду Linux в фоновом режиме, используя этот метод.
Оставьте свои команды Linux в фоновом режиме
Возможность запускать команды в фоновом режиме делает управление системой более продуктивным для администраторов. Вы можете отправлять свои задачи в фоновый режим несколькими способами. Функции Bash, такие как символ & и Ctrl + Z , удобны, но система завершит фоновое задание при закрытии оболочки.
С другой стороны, такие инструменты, как nohup и disown , поддерживают выполнение вашей команды, даже когда вы выходите из системы или завершаете работу оболочки.
Если вы оставите свои программы в фоновом режиме на долгое время, они могут превратиться в процессы-зомби, если не будут правильно настроены. Эти процессы могут значительно замедлить работу системы. Поэтому обязательно время от времени выявляйте и уничтожайте процессы-зомби.
Смотрите другие статьи на нашем канале .
Как использовать рабочие пространства и активные углы в Linux Mint для повышения производительности
Изменения Linux за эти годы
12 самых безопасных сайтов для загрузки свободного программного обеспечения Linux
Вы также можете оставить свое мнение об этом посте в разделе комментариев.
Запуск команд Linux в фоновом режиме (+Видео)
В данной заметке мы рассмотрим, как запускать команды Linux в фоновом режиме. То есть, когда после запуска какой-либо команды, она начинает свою работу в фоне, а вы продолжаете работать в терминале.
Видео
Видео-версия. Наше видео про запуск команд в фоновом режиме.
Что такое приоритетный и фоновый режимы
Обычно все команды Linux запускаются в оболочке (в командной строке) в приоритетном режиме, называемом foreground. В этом режиме оболочка ожидает завершения работы команды, прежде чем пользователь сможет ввести новую команду.
Можно запускать команды Linux в фоновом режиме — background, при котором не нужно ожидать завершения команды, чтобы запустить другую команду.
Пользователь может запускать несколько команд в фоновом режиме одновременно. То есть эти команды будут выполняться параллельно. При этом окно терминала доступно для ввода новых команд.
Как запустить команду в фоновом режиме
Чтобы запустить команду в фоновом режиме, нужно в конец команды через пробел добавить знак амперсанда &
Синтаксис запуска команды в фоновом режиме можно записать следующим образом:
Пример запуска команды в фоновом режиме
Рассмотрим пример. Предположим, нам нужно распаковать большой tar-архив. Выполняем команду:
$ tar -xf archive.tar & [1] 7958 $
Распаковка архива выполняется в фоновом режиме, а мы можем вводить в терминале новые команды.
Как вы можете видеть, на экран выводятся символы [1] 7958
[1] — это номер, который оболочка назначила нашему фоновому заданию, чтобы мы могли идентифицировать его и управлять им (см. ниже как).
7958 — это идентификатор (PID) процесса, который был создан.
Как вывести задание из фонового режима
Если вы запустили один или несколько процессов в фоновом режиме, то вы можете подключиться к любому из них и вывести из фонового режима (перевести в приоритетный режим). Для этого используется команда fg
Команда fg , запущенная без аргументов, выводит из фонового режима последний запущенный фоновый процесс.
Например, запустим две команды в фоновом режиме и выполним команду fg . В результате мы выведем вторую команду из фонового режима.
$ tar -xf archive1.tar & [1] 8054 $ tar -xf archive2.tar & [2] 8055 $ fg tar -xf archive2.tar
Можно указать номер конкретного задания, которое нужно вывести из фонового режима:
$ tar -xf archive1.tar & [1] 8054 $ tar -xf archive2.tar & [2] 8055 $ fg 1 tar -xf archive1.tar
Просмотр заданий, работающих в фоновом режиме
Для просмотра заданий, работающих в фоновом режиме, используется команда jobs
$ jobs [1] Запущен tar -xf archive1.tar & [2]- Запущен tar -xf archive2.tar & [3]+ Запущен gedit &
Символом плюс + помечается последнее запущенное задание. Если использовать команду fg без аргументов, то она будет применена именно к этому заданию.
Символом минус — помечается задание, которое было запущено перед последним.
Перевод задания в фоновый режим
Чтобы перевести задание, которое в данный момент работает в приоритетном режиме, в фоновый режим, используется команда bg
Так как задание работает в приоритетном режиме, то вы не можете вводить команды, поэтому сначала нужно приостановить выполнение задания. Для этого используется сочетание клавиш Ctrl+Z
После этого можно выполнить команду bg , чтобы продолжить выполнение задания, но уже в фоновом режиме.
Заключение
Мы кратко рассмотрели, как запускать команды Linux в фоновом режиме. Использование фонового режима позволяет запускать одновременно несколько процессов из одного окна терминала (экземпляра оболочки). Особенно это удобно, когда команда должна выполняться длительное время и не требует постоянного наблюдения. Пользователь при этом может продолжать пользоваться командной строкой.
Запуск команд Linux в фоновом и приоритетном режимах
Если у вас в терминале запущено долгоиграющее приложение, не всегда целесообразно дожидаться его завершения. Зачем держать терминал занятым для одной определенной команды? В Linux вы можете отправить команду или процесс в фоновый режим, чтобы команда выполнялась, и при этом выполнять другие команды в терминале.
В этой статье мы рассмотрим пару способов отправить процесс в фоновом режиме и как вернуть фоновые процессы в приоритетные.
Запуск процесса Linux в фоновом режиме напрямую
Если вы знаете, что выполнение команды или процесса займет много времени, лучше запустить команду сразу в фоновом режиме.
Чтобы запустить команду Linux в фоновом режиме, нужно добавить амперсанд (&) в конце команды, например так:
Для примера возьмем простую команду sleep и отправим ее в фоновый режим:
После завершения выполнения команды в фоновом режиме, появится информация об этом в терминале:
Отправка работающего процесса Linux в фоновый режим
Можно отправить уже запущенный процесс в фоновый режим.
В этом случае используем сочетание клавиш Ctrl + Z, чтобы приостановить запущенный процесс, а затем использовать bg (сокращение от background), чтобы отправить процесс в фоновый режим. После этого приостановленный процесс будет работать в фоновом режиме.
[test@test-pc ~]$ sleep 60 ^Z [1]+ Остановлен sleep 60 [test@test-pc ~]$ bg [1]+ sleep 60 &
Просмотр всех процессов, работающих в фоновом режиме
Теперь, когда мы знаете, как отправлять процессы в фоновый режим, нам необходимо узнать, какие команды выполняются в фоновом режиме.
Для этого вводим нижеприведенную команду в терминал:
Эта команда выведет все запущенные в фоновом режиме задания/процессы/команды:
jobs [1] Запущен firefox & [2]- Запущен gedit & [3]+ Завершён vim
Выводим процесс из фонового режима
Итак, мы научились запускать команды в фоновом режиме. Но как насчет того, чтобы вывести процесс, работающий в фоновом режиме, снова в приоритет?
Чтобы отправить команду в фоновый режим, мы использовали bg. Чтобы вернуть фоновый процесс обратно, используем команду fg (foreground).
Если мы просто используем команду fg, он выведет последний процесс в очереди фоновых заданий в приоритет. В нашем предыдущем примере запуск fg вернет редактор Vim в терминал.
Если нужно вывести определенный процесс в приоритет, необходимо указать его идентификатор задания. Идентификатор задания — это число, которое мы видим в начале каждой строки в выходных данных команды jobs.
, где n — это идентификатор задания, отображаемый в выходных данных команды jobs.