Исправляя сайт для кого-то, я столкнулся со следующей проблемой:
Чтобы обработать некоторые данные, он вызывает exec("/usr/bin/php /path/to/file.php input.dat")
, тогда как вызываемый file.php
содержит include("config.php")
, который, в свою очередь, содержит вызов session_start()
.
Возникающая проблема - тупик, ожидающий flock("/tmp/sess_XXXXXX")
.Родительский сценарий блокирует файл сеанса, затем exec
'сценарий ed пытается продолжить тот же сеанс, снова блокируя этот файл, но ожидает его блокировки.
Я попытался поместить следующее всамое начало exec
'ed скрипта, но безрезультатно:
session_save_path("/tmp/alt_session");
session_id("NOTHING");
Очевидно, что есть что-то явно нелепое в вызове exec("php ...")
из скрипта php, но это аргумент для другого дня,и не то, что я могу изменить здесь.Кроме того, хотя я могу свободно изменять файл, запускаемый под exec
, изменение config.php
может создать некоторые другие головные боли, которых я предпочел бы избежать.
Любые другие варианты, или яупустить что-то важное?