Верх страницы
Обложка к записи Запуск WP-CLI в фоне
Время для прочтения: 0 мин. 26 сек.

Запуск WP-CLI в фоне

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

В этом коротеньком руководстве я покажу вам, как запустить команду wp media regenerate в фоне. Вся магия заключается в командах nohupи tmux.

Команда nohup

nohup — UNIX-утилита, запускающая указанную команду с игнорированием сигналов потери связи (SIGHUP). Таким образом, команда будет продолжать выполняться в фоновом режиме и после того, как пользователь выйдет из системы.

Если стандартным выводом (stdout) команды является терминал, то он и стандартный вывод ошибок (stderr) перенаправляются с добавлением в файл «nohup.out» в текущем каталоге; если это невозможно сделать, то перенаправление происходит в файл «$HOME/nohup.out».

nohup wp media regenerate --yes &

Наличие амперсанда в конце строки обязательно. Эта команда запустит процесс пересоздания миниатюр записей в фоне и напечатает идентификатор процесса в терминале:

[1] 223344

Для просмотра лога процесса пересоздания миниатюр, введите:

cat nohup.out

Для получения списка задач, напечатайте команду jobs:

jobs

Вывод будет похож примерно на это:

[1]+  Running nohup wp media regenerate --yes &

Для остановки процесса регенерации миниатюр используйте команду kill и порядковый номер задачи, полученный на предыдущем шаге [1]+:

kill %1

Если вы завершите сессию в терминале, то вместо команды jobs вам нужно будет испльзовать другую команду ps -eaf | grep wp:

ps -eaf | grep wp

Вывод будет похож примерно на это:

501 223344 220044   0  3:19PM ttys000    0:00.14 wp media regenerate --yes

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

kill 223344

Команда tmux

tmux — это свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким терминалам в рамках одного экрана.

tmux может быть отключен от экрана: в этом случае он продолжит исполняться в фоновом режиме; имеется возможность вновь подключиться к tmux, находящемуся в фоне.

Установите tmux:

sudo apt update && sudo apt install tmux -y

Присоединитесь к сессии tmux или создайте новую:

tmux attach || tmux new

Запустите процесс пересоздания миниатюр:

wp media regenerate --yes --path=/var/www/public_html/ 

Далее используйте комбинацию клавиш ctrl+b, чтобы перейти в командный режим и d, чтобы свернуть в фон.

Для просмотра статуса снова используйте:

tmux attach || tmux new

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Предыдущая запись

Давайте дружить
в Телеграме

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы