Мне нужно запустить командную строку программы Linux с php через функцию exec
. Основная проблема заключается в том, что мне нужно ждать результата программы и через некоторое время возвращается (от 30 секунд до 2 минут). Поскольку PHP не имеет многопоточности, весь сайт застрянет на это время. Есть ли способ запустить exec
как «новая тема» (не в фоновом режиме)?Как запустить exec как «новый поток»?
0
A
ответ
1
также, если вы сказали, что не хотите запускать его в фоновом режиме, это обычное решение для этого, а затем регулярно проверяйте, завершен ли процесс.
исполняемая программа может записать ее «возвращаемое значение» во временный файл, когда она закончится. поэтому, если файл существует, вы знаете, что процесс завершен, и вы можете работать с результатом.
также рекомендуется не только проверять наличие временного файла, но и идентификатор процесса выполняемой программы. если он не предоставляет PID, вы можете запустить его с помощью инструмента, такого как start-stop-daemon, который может предоставить эту информацию.
Смежные вопросы
- 1. Как создать и запустить новый поток
- 2. Как запустить новый поток JavaFX (Application)?
- 3. QApplication exec() создает новый поток/процесс?
- 4. Запустить новый поток с помощью экземпляра Action
- 5. Как запустить независимый поток
- 6. Android: как запустить поток
- 7. Не удается запустить новый поток python
- 8. Как запустить поток на JButton?
- 9. Как запустить новый virtualEnv
- 10. Как создать новый поток в python?
- 11. Как запустить/остановить поток FFMPEG?
- 12. Как запустить поток из кнопки?
- 13. Как запустить запущенную команду PHP exec()?
- 14. JAVA Как запустить amixer через exec
- 15. Как запустить кукольный exec, если выполнено условие?
- 16. Как запустить shellscript параллельно как java-поток
- 17. Java: как сгенерировать новый поток? Не как создать новый поток для использования
- 18. Запустить java -jar от exec
- 19. Как запустить простой воздушный поток dag
- 20. какой поток выполняет новый поток видит как 'parent'
- 21. Как создать новый поток python с классами?
- 22. Как вызвать новый поток с помощью кнопки
- 23. Как поместить метод делегата в новый поток?
- 24. Java: Как сделать новый поток каждую секунду
- 25. Как использовать новый поток в методе синхронизации
- 26. Как передать структуру в новый поток (C++)
- 27. Как запустить JMH Benchmark в Maven Использование exec: java Вместо exec: exec?
- 28. Rails - запустить задачу рейка или новый поток от контроллера?
- 29. Новый поток в функции класса
- 30. Android: Как запустить фоновый поток и поток пользовательского интерфейса одновременно?
Что вы подразумеваете под «новой нитью», если вы не имеете в виду в фоновом режиме? Как вы уже упоминали, PHP не имеет многопоточности, поэтому ваши параметры ждут его завершения или оставят его в фоновом режиме. – jcsanyi
Почему бы не выполнить его с помощью ajax, так же как и поток в этом случае. – DevZer0
@ DevZer0 и так весь сайт застрянет, как я уже говорил – Kin