Как запустить php скрипт в консоли в фоновом режиме?

Использовать nohup:

Запустите команду с перенаправлением вывода в указанный файл:

bash

nohup php /path/to/script.php > /path/htdocs/yama/levelog.log 2>&1 &
  • > /path/htdocs/yama/levelog.log: записывает стандартный вывод в файл.
  • 2>&1: объединяет стандартный вывод и стандартный поток ошибок.

Логи будут записываться в файл /path/htdocs/yama/levelog.log.

Убедитесь в правах доступа

Если файл /path/htdocs/yama/levelog.log принадлежит другому пользователю или группе, проверьте и настройте права доступа:

Убедитесь, что PHP имеет право записывать в файл:

bash
sudo chown www-data:www-data /path/htdocs/yama/levelog.log sudo chmod 664 /path/htdocs/yama/levelog.log

Если файла ещё нет, создайте его:

bash

touch /path/htdocs/yama/levelog.log sudo chown www-data:www-data /path/htdocs/yama/levelog.log sudo chmod 664 /path/htdocs/yama/levelog.log

Теперь все логи будут корректно записываться в указанный файл.

Что дальше?

Проверить логи: Убедитесь, что скрипт записывает данные в файл:

bash
tail -f /bigwash_erp/htdocs/yama/levelog.log

Убедиться, что процесс работает:

bash
ps -p 285 

Если процесс активен, команда вернёт информацию о процессе.

Остановить процесс (при необходимости):

bash 

kill 285

Если вы закроете сессию SSH, процесс будет продолжать работать.

Похожие записи