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. Запуск команды Linux в фоновом режиме
  14. Переместить процесс переднего плана на задний план
  15. Сохранение фоновых процессов после выхода из оболочки
  16. Альтернативы
  17. Экран
  18. Tmux
  19. Выводы

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

Читайте также:  Icq для linux windows

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

Читайте также:  Alt linux обновление пакетов

Если вы оставите свои программы в фоновом режиме на долгое время, они могут превратиться в процессы-зомби, если не будут правильно настроены. Эти процессы могут значительно замедлить работу системы. Поэтому обязательно время от времени выявляйте и уничтожайте процессы-зомби.

Смотрите другие статьи на нашем канале .

Как использовать рабочие пространства и активные углы в Linux Mint для повышения производительности

Изменения Linux за эти годы

12 самых безопасных сайтов для загрузки свободного программного обеспечения Linux

Вы также можете оставить свое мнение об этом посте в разделе комментариев.

Источник

Как запускать команды Linux в фоновом режиме

Обычно, когда вы запускаете команду в терминале, вам нужно дождаться завершения команды, прежде чем вы сможете ввести другую. Это называется запуском команды в процессе переднего плана или переднего плана. Когда процесс выполняется на переднем плане, он занимает вашу оболочку, и вы можете взаимодействовать с ним, используя устройства ввода.

Что делать, если выполнение команды занимает много времени, а вы тем временем хотите выполнить другие команды? В вашем распоряжении несколько вариантов. Самый очевидный и простой вариант — запустить новый сеанс оболочки и запустить в нем команду. Другой вариант — запустить команду в фоновом режиме.

Фоновый процесс — это процесс / команда, который запускается с терминала и выполняется в фоновом режиме без взаимодействия с пользователем.

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

Запуск команды Linux в фоновом режиме

Чтобы запустить команду в фоновом режиме, добавьте символ амперсанда ( & ) в конце команды:

Идентификатор задания оболочки (в скобках) и идентификатор процесса будут напечатаны на терминале:

Вы можете одновременно запускать несколько процессов в фоновом режиме.

Фоновый процесс продолжит писать сообщения в терминал, из которого вы вызвали команду. Чтобы подавить сообщения stdout и stderr используйте следующий синтаксис:

>/dev/null 2>&1 означает перенаправление stdout на /dev/null и stderr на stdout .

Используйте утилиту jobs для отображения состояния всех остановленных и фоновых заданий в текущем сеансе оболочки:

Вывод включает номер задания, идентификатор процесса, состояние задания и команду, запустившую задание:

[1]+ 25177 Running ping google.com & 

Чтобы вывести фоновый процесс на передний план, используйте команду fg :

Читайте также:  Linux как открыть настройки

Если у вас несколько фоновых заданий, укажите % и идентификатор задания после команды:

Чтобы завершить фоновый процесс, используйте команду kill за которой следует идентификатор процесса:

Переместить процесс переднего плана на задний план

Чтобы переместить запущенный процесс переднего плана в фоновый режим:

  1. Остановите процесс, нажав Ctrl+Z
  2. Переместите остановленный процесс на задний план, набрав bg .

Сохранение фоновых процессов после выхода из оболочки

Если ваше соединение разрывается или вы выходите из сеанса оболочки, фоновые процессы прекращаются. Есть несколько способов сохранить выполнение процесса после завершения сеанса интерактивной оболочки.

Один из способов — удалить задание из управления заданиями оболочки с помощью встроенной команды disown shell:

Если у вас несколько фоновых заданий, укажите % и идентификатор задания после команды:

Подтвердите, что задание удалено из таблицы активных заданий, используя команду jobs -l . Чтобы перечислить все запущенные процессы, включая отключенные, используйте команду ps aux .

Еще один способ сохранить выполнение процесса после выхода из оболочки — использовать nohup .

Команда nohup выполняет другую программу, указанную в качестве аргумента, и игнорирует все сигналы SIGHUP (зависание). SIGHUP — это сигнал, который отправляется процессу, когда его управляющий терминал закрыт.

Чтобы запустить команду в фоновом режиме с помощью команды nohup , введите:

Вывод команды перенаправляется в файл nohup.out .

nohup: ignoring input and appending output to 'nohup.out' 

Если вы выйдете из системы или закроете терминал, процесс не завершится.

Альтернативы

Существует ряд программ, позволяющих проводить несколько интерактивных сеансов одновременно.

Экран

Экран или GNU Screen — это программа-мультиплексор терминала, которая позволяет запускать сеанс экрана и открывать любое количество окон (виртуальных терминалов) внутри этого сеанса. Процессы, запущенные в Screen, будут продолжать работать, если их окно не отображается, даже если вы отключитесь.

Tmux

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

Выводы

Чтобы запустить команду в фоновом режиме, включите & в конце команды.

Когда вы запускаете команду в фоновом режиме, вам не нужно ждать ее завершения, прежде чем вы сможете выполнить другую.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

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