Запуск сценария PHP, который запускает сценарий Python, который запускает сценарий bash, зависает на bash

У меня есть сценарий Python, который кодирует видео, а затем вызывает сценарий оболочки, который загружает новое видео в Dropbox. Он отлично работает из командной строки, но мне нужно было сделать так, чтобы другие могли его выполнить, поэтому у меня есть PHP-скрипт, вызывающий скрипт Python.

Я не хочу, чтобы скрипт PHP работал вечно (для его завершения требуется 15-30 минут), я просто хочу, чтобы он запускал скрипт Python и все было готово. Я понял, что мне нужно, чтобы это произошло, и, как я уже сказал, это работает в командной строке. Но когда он вызывается через PHP, видео кодируется, но файл никогда не загружается. Я вижу, что скрипт dropbox был запущен и указан как процесс, использующий некоторый процент ЦП, этот процент никогда не меняется, кажется застрявшим / мертвым.

команда выглядит так, будучи запущенной с помощью cmd ()

script.py -options &>/logs/phptopython.log &

Сценарий оболочки запускается с помощью Popen

Какие-либо предложения?

Спасибо

0

Решение

Похоже, это может быть проблема с разрешениями. Дважды проверьте права доступа к каталогу, в который вы пытаетесь загрузить видео. Если вы работаете в Linux, вы можете изменить разрешения для этого каталога следующим образом:

chmod 755 /path/to/dir

Это дает владельцу файла права на чтение, запись и выполнение (7). Группа и другие пользователи получают права на чтение и выполнение (5).

Apache, скорее всего, работает от имени другого пользователя, чем когда вы запускаете команду самостоятельно в bash. Быстрый тест, чтобы увидеть, является ли это проблемой разрешения, состоит в том, чтобы предоставить 777 для этого каталога. Я бы не стал так оставлять — это был бы просто способ быстро определить, являются ли разрешения проблемой.

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

Редактировать:
Я только что заметил, что вы сказали, что используете cmd (), поэтому я предполагаю, что вы работаете в Windows. Мои комментарии могут быть актуальны, но команда chmod не будет работать в Windows.

0

Другие решения

Других решений пока нет …