У меня есть большое PHP-приложение, и я ищу способ узнать, какой PHP-скрипт работает в данный момент. Что-то вроде, когда вы запускаете «сверху» в командной строке Linux, но для PHP.Определите, какой PHP-скрипт запущен?
ответ
Вы пытаетесь сделать это из приложения PHP или за его пределами? Если вы находитесь внутри кода PHP, то ввод debug_print_backtrace();
в этот момент покажет вам «дерево» файлов PHP, которые были включены, чтобы получить вас в этот момент.
Если вы находитесь за пределами скрипта PHP, вы можете увидеть только тот процесс, который вызвал исходный PHP-скрипт (index.php или whatnot), если приложение не порождает параллельные потоки как часть его выполнения.
+1, но php не поддерживает потоки. –
@Byron: Да, это делает: http://us3.php.net/manual/en/function.pcntl-fork.php (необходимо скомпилировать с помощью PCNTL, но это возможно) – MidnightLightning
nah, который разворачивает процесс, аналогично, но не то же самое, что и нарезание резьбы. Вы можете прочитать некоторые отзывы пользователей по этой проблеме: http://stackoverflow.com/q/209774/398519 –
Это старое сообщение показывает способ, которым вы можете обернуть вызовы php-скриптам и получить PID для каждого процесса.
$cmd = 'nohup nice -n 10 /usr/bin/php -c /path/to/php.ini -f /path/to/php/file.php action=generate var1_id=23 var2_id=35 gen_id=535 > /path/to/log/file.log & echo $!';
$pid = shell_exec($cmd);
Если вы ищете эту информацию на системном уровне, например, все файлы php, работающие под любым дочерним процессом Apache или даже любые файлы PHP, используемые другими приложениями, есть программа lsof
(список открытых файлов), которая по умолчанию будет выдавать ВСЕ открытые файлы в системе (исполняемые файлы, сокеты, fifos , .so's и т. д.). Вы можете grep вывести для '.php' и получить довольно полную картину того, что в данный момент используется.
- 1. Определите, какой [SelectField] [DropDownMenu] запущен в диапазоне
- 2. Определите, запущен ли сценарий/сервер
- 3. Какой скрипт python запущен
- 4. Определите, какой GameObject коснулся?
- 5. Определите, какой UISwitch прослушивается
- 6. Определите, какой ключ изменить
- 7. Определите, был ли запущен скрипт CodeIgniter
- 8. Определите, какой графический процессор работает через WMI
- 9. Определите, какой компилятор построил мой LAPACK
- 10. Определите, какой QPixmapItem был выбран
- 11. Определите, какой файл конфигурации используется
- 12. Определите, какой метод вызывается функцией
- 13. Определите, какой метод QuerySetAPI называется
- 14. Определите, какой DLL (.tlb) работает
- 15. Определите, какой скрипт закончен последним
- 16. Определите, какой класс называется IntentService
- 17. Определите, какой веб-сервер используется
- 18. Определите, какой MKPinAnnotationView был выбран?
- 19. SocketIO Определите, какой пользователь отключен
- 20. Определите, какой сигнал вызвал EINTR?
- 21. Определите, какой массив длиннее. JavaScript
- 22. Определите, был ли запущен скрипт из GUI или SSH-login
- 23. Определите, какие элементы являются новыми, когда ProjectEvents.ItemAdded запущен (расширяемость VS)
- 24. Какой компилятор Java HotSpot JIT запущен?
- 25. Запишите, какой метод очереди/потока запущен на
- 26. Как определить, какой вид активности был запущен?
- 27. Найдите, какой скрипт MATLAB запущен в linux
- 28. Какой номер обновления моего VS2013 запущен?
- 29. Как узнать, какой возбудитель событий был запущен
- 30. На какой поток запущен метод, инициированный NSTimer?
Вы посмотрели на суперглобальный массив '$ _SERVER'? Он имеет некоторую информацию о том, какой файл в настоящее время выполняется. –