2011-01-13 3 views
1

У меня есть большое PHP-приложение, и я ищу способ узнать, какой PHP-скрипт работает в данный момент. Что-то вроде, когда вы запускаете «сверху» в командной строке Linux, но для PHP.Определите, какой PHP-скрипт запущен?

+1

Вы посмотрели на суперглобальный массив '$ _SERVER'? Он имеет некоторую информацию о том, какой файл в настоящее время выполняется. –

ответ

4

Вы пытаетесь сделать это из приложения PHP или за его пределами? Если вы находитесь внутри кода PHP, то ввод debug_print_backtrace(); в этот момент покажет вам «дерево» файлов PHP, которые были включены, чтобы получить вас в этот момент.

Если вы находитесь за пределами скрипта PHP, вы можете увидеть только тот процесс, который вызвал исходный PHP-скрипт (index.php или whatnot), если приложение не порождает параллельные потоки как часть его выполнения.

+1

+1, но php не поддерживает потоки. –

+1

@Byron: Да, это делает: http://us3.php.net/manual/en/function.pcntl-fork.php (необходимо скомпилировать с помощью PCNTL, но это возможно) – MidnightLightning

+0

nah, который разворачивает процесс, аналогично, но не то же самое, что и нарезание резьбы. Вы можете прочитать некоторые отзывы пользователей по этой проблеме: http://stackoverflow.com/q/209774/398519 –

0

Это старое сообщение показывает способ, которым вы можете обернуть вызовы php-скриптам и получить PID для каждого процесса.

Does PHP have threading?

$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); 
1

Если вы ищете эту информацию на системном уровне, например, все файлы php, работающие под любым дочерним процессом Apache или даже любые файлы PHP, используемые другими приложениями, есть программа lsof (список открытых файлов), которая по умолчанию будет выдавать ВСЕ открытые файлы в системе (исполняемые файлы, сокеты, fifos , .so's и т. д.). Вы можете grep вывести для '.php' и получить довольно полную картину того, что в данный момент используется.

Смежные вопросы