Я настроил httpd (apache2.4.6) cgi для запуска сценариев / bin / bash. Я хотел бы отследить httpd-вызовы / bin / bash и увидеть фактическую выполняемую команду. До сих пор я пытался использовать strace -p, но по какой-то причине вижу только: wait4 (-1, 0x7ffeef137dfc, WNOHANG | WSTOPPED, NULL) = 0 select (0, NULL, NULL, NULL, {1, 0}) = 0 (Тайм-аут)
И нет конкретного вывода при загрузке URI, который предоставляет вывод cgi. У вас есть рекомендации, как отследить эти действия httpd?
Похоже, вы отслеживаете неправильный процесс или, по крайней мере, не тот поток. Вам нужно будет указать все то httpd
/ apache2
идентификаторы процессов с -p
(например strace -p 12345 -p 4321 -p 9876 <etc>
), чтобы быть уверенным, что выберете нужный.
Однако этого недостаточно, потому что для запуска внешнего сценария Apache выполнит форк, прежде чем он выполнит сценарий. Вам нужно будет добавить -f
вариант для вашего strace
вызов для отслеживания вновь порожденных процессов. Я также рекомендовал бы увеличить максимальную длину строки (с -o 10000
), чтобы гарантировать, что вы не получите усеченные аргументы процесса.