Некоторые настройки фона первой:PHP Cronjob изменения ш корень
У меня есть cronjob, который работает на PHP файл с именем worker_cronjob. Все файл не является скачать мой работника от мерзавца и cronjob в cron.d выглядит следующим образом:
*/1 * * * * убунт/дома/убунт/worker_cronjob >> /home/ubuntu/worker.log
Она включает в себя файл worker_despatcher
, который выстреливает дочерний процесс с (ROOT будучи путь abolsute в мой каталог):
$ PID = Exec (Sprintf ("% s>% s 2> echo $! "," Php ".ROOT."/Worker/encoder.php ". $ Arg_string, ROOT."/Worker/encoder.log "));
Проблема в том, что под кроной этот метод изменяет способ запуска системных команд, а точнее sh. Поэтому, когда я запускаю команду как:
ffmpeg
возвращает:
sh: 1: ffmpeg: command not found
После проб и ошибок я обнаружил, что это происходит только из cronjob, каким-то образом это меняет способ директории установки, много как chrooting без меня, вызывающего chroot.
Я смотрел другие темы, и он говорит, что использует полные пути при создании cronjobs и запущенных файлов, однако это не мои файлы, и это все проблемы, и все они ссылаются через абсолютные пути, он запускает установленные программы, где я получаю проблемы ,
Используется ли абсолютный путь к установленным приложениям или есть способ нарушить эту функциональность, чтобы вернуть мне возможность просто запустить команду одним словом?
использование также абсолютный путь к команде FFmpeg и посмотреть, что происходит –
Создать Баш скрипт, который вызывается в cronjob линии. Таким образом, вы можете более легко настроить способ запуска ffmpeg, и вы можете симулировать, что происходит, когда он вызывается root или каким-либо другим пользователем в какой-либо другой оболочке с другой средой и всем этим. – hakre
Действительно, мне кажется, что мне нужно будет сделать что-то подобное, поскольку с помощью абсолютных путей по всему скрипту PHP вызывать это просто противно. Но да, используя абсолютные пути, работало, лично очень странное поведение, на мой взгляд, спасибо за помощь :) – Sammaye