Как запускать команды Linux в фоновом режиме
Команды Linux – отличный способ взаимодействия с системой с помощью терминала. Однако иногда выполнение поставленной задачи может занять некоторое время. Это заставляет пользователей ждать значительное время или вообще создавать новую оболочку.
К счастью, вы можете запускать команды Linux в фоновом режиме, следуя некоторым простым методам. Остальная часть этой статьи иллюстрирует некоторые из этих методов.
1. Добавьте амперсанд после вашей команды
Самый простой способ запустить фоновую команду Linux – добавить символ амперсанда ( & ) после команды. Например, если вы запустите текстовый редактор gedit из своего терминала, вы не сможете использовать оболочку, пока не закроете редактор. Однако, если вы добавите к своей команде дополнительный & , вы сразу же сможете использовать оболочку.
gedit &
2. Используйте bg для отправки запущенных команд в фоновый режим.
Иногда вы запускаете команду только для того, чтобы понять, что ее выполнение занимает гораздо больше времени. Вы можете легко отправить эти команды в фон, нажав клавиши Ctrl + Z, а затем используя команду bg . Ctrl + Z останавливает запущенный процесс, а bg переводит его в фоновый режим.
Вы можете просмотреть список всех фоновых задач, набрав задания в терминале. Используйте команду fg, чтобы вернуться к запущенной задаче.
3. Отправляйте команды в фоновый режим с помощью nohup
Команда nohup в Linux позволяет администраторам запускать команды терминала, невосприимчивые к сигналам HUP или Hang Up . Вы можете запускать команды Linux в фоновом режиме с помощью nohup.
В приведенном ниже примере выполняется сканирование портов Nmap в фоновом режиме.
nohup sudo nmap -sS --top-ports=15 192.168.1.1/24
Одним из ключевых преимуществ nohup является то, что ваши команды будут выполняться, даже если вы выйдете из оболочки. Кроме того, он генерирует файлы журнала выполнения. Найдите nohup.out в текущем каталоге или внутри $ HOME.
4. Запускать фоновые команды с помощью системных перенаправлений.
Вы также можете запускать фоновые команды в Linux, используя системные перенаправления. Например, если вы запустите приведенную ниже команду ping , ваша оболочка запустит ее в фоновом режиме и немедленно вернет приглашение терминала.
ping -c5 8.8.8.8 >output.log 2>&1 &
Здесь вывод команды ping перенаправляется в файл output.log . Вы можете заменить его на / dev / null, если хотите отменить результат. 2> & 1 указывает bash перенаправлять любые ошибки в тот же файл. Последний & сигнализирует bash, что нужно запустить эту команду в фоновом режиме.
5. Установите команды Linux в фоновый режим, используя disown.
Команда disown в Linux упрощает выполнение команд в фоновом режиме. Во-первых, вам нужно отправить задачу в фоновом режиме с помощью оператора & . Затем введите disown, чтобы отсоединить его от оболочки.
gedit &
disown
Одним из основных преимуществ отказа является то, что, как и nohup, система не убивает вашу задачу, когда вы закрываете оболочку или выходите из системы.
6. Запускайте команды Linux в фоновом режиме с помощью Tmux.
Tmux – это мощный мультиплексор, который позволяет нам запускать несколько терминальных сессий в одном окне. Изучение tmux – отличный выбор для людей, которые с ним не знакомы. Tmux упрощает выполнение фоновых команд в Linux.
tmux new -d 'ping -c 10 8.8.8.8 > output.log'
Когда вы запускаете указанную выше команду tmux , она выполняет команду ping в отдельной оболочке и сохраняет ее в фоновом режиме. Используя этот метод, вы можете выполнить любую команду Linux в фоновом режиме.
Оставьте свои команды Linux в фоновом режиме
Возможность запускать команды в фоновом режиме делает управление системой более продуктивным для администраторов. Вы можете фонить свои задачи несколькими способами. Такие функции Bash, как & и Ctrl + Z , удобны, но система убьет фоновое задание при закрытии оболочки. С другой стороны, такие инструменты, как nohup и disown, поддерживают выполнение вашей команды даже после выхода из системы или завершения работы оболочки.
Если вы оставите свои программы в фоновом режиме на долгое время, они могут стать зомби-процессами, если они не закодированы должным образом. Эти процессы могут значительно замедлить работу системы. Поэтому не забывайте время от времени выявлять и уничтожать зомби-процессы.