Я пытаюсь запустить команду оболочки, используя операторы backtick, но тот факт, что дочерний процесс наследует дескрипторы открытого файла php, проблематичен. Есть ли способ предотвратить это?
Я использую PHP 5.1.2
Единственный способ, которым я действительно знаю, - это заставить детей открывать свои собственные ресурсы после разветвления.
Здесь довольно неплохое руководство по pcntl:
http://www.hackingwithphp.com/16/0/0/miscellaneous-topics http://www.hackingwithphp.com/16/1/4/duplication-of-resources-when-forking
Это сработало для меня:
$cmd_to_run = escapeshellarg('/path/to/file --args'); `echo $cmd_to_run | /bin/at now`;
Замените часть '/ path / to / file --args' командой, которую вы хотите запустить. Команда 'at' использует ваш демон cron для планирования задач.