Фоновый запуск команды linux

Содержание
  1. Как запускать команды Linux в фоновом режиме
  2. 1. Добавьте амперсанд после вашей команды
  3. 2. Используйте bg для отправки запущенных команд в фоновом режиме
  4. 3. Отправляйте команды в фоновом режиме с помощью nohup
  5. 4. Запускайте фоновые команды, используя системные перенаправления
  6. 5. Настройте выполнение команд Linux в фоновом режиме с помощью disown
  7. 6. Запускайте команды Linux в фоновом режиме с помощью tmux
  8. Оставьте свои команды Linux в фоновом режиме
  9. Как использовать рабочие пространства и активные углы в Linux Mint для повышения производительности
  10. Изменения Linux за эти годы
  11. 12 самых безопасных сайтов для загрузки свободного программного обеспечения Linux
  12. Запуск команд Linux в фоновом режиме (+Видео)
  13. Видео
  14. Что такое приоритетный и фоновый режимы
  15. Как запустить команду в фоновом режиме
  16. Пример запуска команды в фоновом режиме
  17. Как вывести задание из фонового режима
  18. Просмотр заданий, работающих в фоновом режиме
  19. Перевод задания в фоновый режим
  20. Заключение
  21. Запуск команд Linux в фоновом и приоритетном режимах
  22. Запуск процесса Linux в фоновом режиме напрямую
  23. Отправка работающего процесса Linux в фоновый режим
  24. Просмотр всех процессов, работающих в фоновом режиме
  25. Выводим процесс из фонового режима

Как запускать команды 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 .

Читайте также:  Linux получить права администратора

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 в фоновом режиме. То есть, когда после запуска какой-либо команды, она начинает свою работу в фоне, а вы продолжаете работать в терминале.

Читайте также:  Linux symbol link file

Видео

Видео-версия. Наше видео про запуск команд в фоновом режиме.

Что такое приоритетный и фоновый режимы

Обычно все команды 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

Перевод в приоритетный режим. Команда fg

Можно указать номер конкретного задания, которое нужно вывести из фонового режима:

$ 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 &

Использование команды jobs

Символом плюс + помечается последнее запущенное задание. Если использовать команду fg без аргументов, то она будет применена именно к этому заданию.
Символом минус — помечается задание, которое было запущено перед последним.

Перевод задания в фоновый режим

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

Так как задание работает в приоритетном режиме, то вы не можете вводить команды, поэтому сначала нужно приостановить выполнение задания. Для этого используется сочетание клавиш Ctrl+Z

Читайте также:  Linux логин доменного пользователя

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

Команда 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.

Источник

Оцените статью
Adblock
detector