Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [apache win] Узнать пид дочернего апач процесса 
:(
    Опции темы
szz
Дата 14.3.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



У меня в винде используется апач как часть программы (остальное написано на С++Билдере, устроено так: прога на C++ иногда по мере необходимости обращается к апачу как браузер через локалхост и php скрипты выполняют то, что попросили).
Все работает, но подглючивает оттого, что приоритеты у Сшной части и апача одинаковые, а жрут они оба много. Исправляется это тем, что вручную меняется приоритет апача на высокий, и тогда работает нормально.
  Но вот беда: это работает если только вручную в таксманагере приоритеты менять. 

Заметьте, что когда запущен один апач сервис, то в такс манагере два процесса по имени апач.
   Насколько я понял, главный процесс - тот, который идентифицирется по имени сервиса - он главный и он ничего не делает, просто запускает дочерний, которого и заставляет работать.

И если я пытаюь автоматически в сишной программе изменить приоритет (я узнаю id по имени апач сервиса и по пиду меняю приоритет), то если посмотреть в такс манагере - приоритет изменился только у одного из двух апач процессов.
   А когда проверяю как работает - то вижу, что именно тот процесс, который не поменял приоритет - именно он и загружается! То есть хоть я и поменял приоритет, это не помогает, потому что не тому меняю!

 И как же узнать пид второго апач процесса? Просто перебрать все процессы по имени апач нельзя, вдруг у чела уже установлен другой апач (я-то свой ставлю как сервис под своим уникальным именем и слушаю на своем порту, так что это не помешает человеку использовать свой апач, если он, например, разработчик сайтов, он даже не заметит что еще один апач работает).
Может нам первый апач процесс может рассказать пид своего дочернего? как у него спросить?
Может из php можно узнать пид второго?


--------------------
PM   Вверх
ZeeLax
Дата 14.3.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 2
Всего: 88



Цитата(szz @  14.3.2007,  18:43 Найти цитируемый пост)
У меня в винде используется апач как часть программы (остальное написано на С++Билдере, устроено так: прога на C++ иногда по мере необходимости обращается к апачу как браузер через локалхост и php скрипты выполняют то, что попросили).

Тогда, это не часть программы. А может, стоит пересмотреть схему? Неужели для этого так необходим апач и php?

Добавлено @ 18:13 
И вообще, на оффтопик похоже.


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
szz
Дата 14.3.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



Да, уже вся прога постоена, использовать апач очень нужно.

Цитата
на оффтопик похоже

  вот такая тема...  не знал куда постить )))


--------------------
PM   Вверх
DENNN
Дата 14.3.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 2
Всего: 43



Цитата(ZeeLax @  14.3.2007,  18:13 Найти цитируемый пост)
И вообще, на оффтопик похоже. 

Глупости какие  smile 


Цитата(szz @  14.3.2007,  15:43 Найти цитируемый пост)
обращается

А запускается апач кем? Может в старте сервиса подправить нужный приоритет.
Схема работы такая (думая на винде не должно ничего сильно изменяться). Запускается главный сервис, который на кажый коннект запускает дочерний процесс. Имя у процесса будет такое же. Видимо твоя прога неправильно ищет процесс чтоб поднять приоритет и вместо главного сервиса, находит порожденный им.
Еще можно порыться в исходниках - они открытые. 
PM ICQ   Вверх
szz
Дата 18.3.2007, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



Наоборот - прога находит и меняет главный (именно пид главного возвращается при запросе по имени сервиса), но не дочерний, а надо дочерний, так как именно он выполняет всю работу.
   Дочерний один и тот же постоянно, возможно потому что у меня один коннект - от локалхоста.
  Если бы знать все пиды всех дочерних...   Мож какой-то запрос в командной строке, типа 
"apache.exe --list_child_processes_pids"? должно ж быть что-то такое...
В исходниках порылся кстати сегодня - хрен что поймешь, проект огромный, я даже функцию main() найти не могу )))))  А разобраться, найти точки порождения дочерних процессов - это уж выше моих сил )))

Добавлено @ 01:19 
Цитата
А запускается апач кем?

  Моей прогой-инсталлятором. Инсталлятор ставит прогу (ну, спрашивает куда, все как обычно), а в конце с помощью ВинАПИ незаметно ставится апач, прописывается в хттпд.конф вся инфа (документ рут, порт для прослушки и т.д), потом запускается под уникальным именем сервиса.
Цитата
Может в старте сервиса подправить нужный приоритет.

  И он всех своих дочерей запускать будет в заданном приоритете?
 Именно это и нужно!  Как это сделать???  Я в винАПИ не нашел как при запуске сервиса указывать ему приоритет.
  Даже в окне "Службы" нет никаких намеков на управление приоритетами...


--------------------
PM   Вверх
DENNN
Дата 18.3.2007, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 2
Всего: 43



Цитата(szz @  18.3.2007,  01:11 Найти цитируемый пост)
но не дочерний, а надо дочерний, так как именно он выполняет всю работу.

Апач хранит в своем файлике пиды всех запущенных потомков. Может в винде и не так, но я сомневаюсь. Почитай на эту тему его документацию и исходники.

Цитата(szz @  18.3.2007,  01:11 Найти цитируемый пост)
Дочерний один и тот же постоянно, возможно потому что у меня один коннект - от локалхоста.

Именно так.


Цитата(szz @  18.3.2007,  01:11 Найти цитируемый пост)
И он всех своих дочерей запускать будет в заданном приоритете?

Да, потомки, насколько я помню, унаследуют приоритет родителя.
PM ICQ   Вверх
szz
Дата 20.3.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



Я спросил на apachelounge.com, мне там быстро ответили ))) оказывается решение просто smile
Переведу если кто с подобным столкнется:
Цитата

Не так уж и трудно это селать.

Во-первых тебе возможно захочется скомпилить модули php, которые используешь статично, чтоб оставить только те dll-ки, которые тебе нужны.

Петем переименуй apache.exe или httpd.exe в MyCoolApache.exe

И запусти: MyCoolApache.exe -X (прописная x)

Если готово, то перебери процессы, найди MyCoolApache.exe и убей его (так будет только один с параметорм -Х)

  "убей его" - автор имел ввиду наверное "сделай что хочешь", например измени приоритет, так как пид теперь я получу запросто от обоих процессов просто по имени процесса MyCoolApache.exe (или любое другое уникальное название), что и ребовалось доказать  smile .


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.