Запуск 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