Как эффективно выполнять команды Linux в фоновом режиме?

задняя часть Linux Эксплуатация и техническое обслуживание
Как эффективно выполнять команды Linux в фоновом режиме?

Эта статья участвовала в приказе о созыве Haowen, нажмите, чтобы просмотреть: Заявки на бэк-энд и фронт-энд двойные, призовой фонд в 20 000 юаней ждет вас, чтобы бросить вызов!

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

Добро пожаловать в поиск WeChat »ИТ-путешествие Джейка"обрати внимание на!

Оригинальная ссылка:Как запускать команды Linux в фоновом режиме?

предисловие

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

Что делать, если выполнение команды занимает много времени, а вы хотите одновременно выполнять другие команды?

  • Первый:запустить новую сессию оболочки и выполнить в ней команды;
  • второй:запустить команду в фоновом режиме;

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

1. Комбинации клавиш и команды

В качестве примера возьмем сжатый пакет httpd-2.2.17.tar.gz.Например, распаковка сжатого файла пакета на экране терминала занимает много времени, и даже пролистывание экрана для завершения процесса занимает много времени. декомпрессия, то мы можем нажатьCtrl+ZНажав комбинацию клавиш, вы можете приостановить операцию и скрыть ее в фоновом режиме, при этом будет возвращен порядковый номер остановки, в это время процесс приостановлен и больше не будет выполняться.

входитьbgкоманда для продолжения выполнения задачи в фоновом режиме.

входитьfg + 序号команда, чтобы вернуть процесс на передний план для выполнения.

Во время выполнения вы можете ввестиjobsКоманда для просмотра всех фоновых задач.

# tar -zxf httpd-2.2.17.tar.gz                             ## 解压 httpd 压缩包
^Z                                                         ## 按下 Ctrl+Z 组合键暂停
[1]+  Stopped                 tar -zxf httpd-2.2.17.tar.gz

# bg                                                       ## 输入 bg 命令,继续在后台运行
[1]+ tar -zxf httpd-2.2.17.tar.gz &

# jobs                                                     ## 查看所有的后台任务
[1]+  Done                    tar -zxf httpd-2.2.17.tar.gz

два,&

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

# ./yum_install.sh &

После выполнения вышеуказанной команды скрипт yum запускается в фоновом режиме.Хотя он работает в фоновом режиме, вывод все равно будет отображаться на терминале.Тогда мы можем перенаправить вывод выполненной команды в файл.

# ./yum_install.sh >> 202001141411out.txt 2>&1 &

Перенаправить результат выполнения на202001141411out.txtфайл,2>&1Перенаправьте стандартную ошибку на стандартный вывод, чтобы судить, было ли выполнение файла сценария yum успешным или нет, нам просто нужно проверить202001141411out.txtфайл;

Если файл сценария выполнялся в течение определенного периода времени, он завис и не может продолжать работу, вы можете использовать первый метод:jobsЗаказ

# jobs -l

или использоватьpsЗаказ

# ps -aux | grep yum_install.sh

3. нет

&: Можно заставить команду работать в фоновом режиме.При закрытии консоли процесс тоже будет убит.Если вы хотите закрыть консоль, процесс все равно будет работать, то вам нужно использовать nohup.

nohup: не вешать трубку, что означает не вешать трубку.

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

# nohup ./yum_install.sh &

как указано вышеnohupРежим выполнения, при оценке того, был ли выполнен скрипт, команда может быть выполненаps -aux | grep yum_install.shПроверять;

В дополнение к этому, мы можем вывести результаты операции вnohup.logфайл, если перенаправление вывода не указано, файл журнала будет выводиться вnohup.outдокумент;

# nohup ./yum_install.sh > nohup.log 2>&1 &

Рекомендуемое чтение


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

Кстати, друзья-копатели, не забудьте дать мне бесплатный подписчик! На случай, если ты заблудишься и не сможешь найти меня в следующий раз.

Увидимся в следующий раз!