Автор |
Сообщение |
Admin Карма: 9 |
Добавлено: 23:15 7 сентября 2010 | |
|
тему открываю обратно. т.к. может, у кого будут еще мысли.
мы действительно слабали пульт управления. но доделывать и развивать его можно еще очень долго.
пока он умеет:
- запускать сервер
- "правильно" останавливать через команду рконом
- жестко убивать
- послать команды рконом и выводить результат
проверяли на КС1.6 и КСС под виндой
еще он вроде бы умеет обновлять сервер с офф сайта стима, но я это проверять не рискнул - не известно, какие файлы и настройки перетрутся обновлением.
|
Admin Карма: 9 |
Добавлено: 23:17 7 сентября 2010 | |
|
Автор: Belfegor Цитата:
tasklist
taskkill
Соответственно при запуске сервера производится поиск из таск листа на hlds и мотрится, какой PID у новозапущенного сервера, после этого он присваивается в базу для этого сервера. Когда происходит килл сервера, то берётся PID из базы.
Потенциальное решение, опять же придуманное за минуты 2, если уходить более глубоко, можно что-нибудь ещё придумать со смыслом запуска какой-нибудь оболочки с уникальным названием.
выбирать ПИД по названию процесса не прокатит, когда серверов-процессов больше 1
может виндусятники подскажут, как можно запустить процесс и получить его ПИД в обратку?
|
Belfegor Карма: 3 |
Добавлено: 23:44 7 сентября 2010 | |
|
Я просто не стал рассписывать полностью. Вы смотрите, вы запустили сервер, допустим до этого у вас уже было запущено 3 сервера. У предыдущих 3 серверов ПИДы уже записаны в базу, следовательно просто смотришь, какой пид не записан, значит это пид нового сервера.
|
Belfegor Карма: 3 |
Добавлено: 23:46 7 сентября 2010 | |
|
Но по этой системе, уже ручной запуск и перезапуск не рассматривается. Либо делать оболочку, чтобы название процесса было уникальным. Тогда это универсально.
|
Admin Карма: 9 |
Добавлено: 23:58 7 сентября 2010 | |
|
а если я запускаю автозапуском 10 серверов подряд, я могу быть уверен, что правильно отслежу прибавление в семействе ПИДов?
|
Belfegor Карма: 3 |
Добавлено: 06:58 8 сентября 2010 | |
|
Смотря как сделана система и какова скорость её работы, что-то утверждать точно не могу, так как не известно где будет стоять система(машина какая), не известно под автоматом имели вы ввиду запуск нажимая вами 10 кнопок запуска или запуск скриптом 10 серверов подрят и много других нюансов.
Скоее всего, для более качественного выбора пида, придётся создавать оболочку для hlds.exe, чтобы в списке процессоров было уникальное имя(например добавлялся порт) и тогда уже Вы не ошибетёсь в процессе.
|
Admin Карма: 9 |
Добавлено: 10:03 8 сентября 2010 | |
|
думаю, можно так:
получаем ПИДы всех процессов, трудящихся по УДП
netstat -p UDP -o
вот только не знаю, как подвесить сервер и проверить, не пропадет ли при этом его активность по УДП
|
geniusiru Карма: 1 |
Добавлено: 10:53 8 сентября 2010 | |
|
Автор: Admin Цитата:
тему открываю обратно. т.к. может, у кого будут еще мысли.
мы действительно слабали пульт управления. но доделывать и развивать его можно еще очень долго.
пока он умеет:
- запускать сервер
- "правильно" останавливать через команду рконом
- жестко убивать
- послать команды рконом и выводить результат
проверяли на КС1.6 и КСС под виндой
еще он вроде бы умеет обновлять сервер с офф сайта стима, но я это проверять не рискнул - не известно, какие файлы и настройки перетрутся обновлением.
давай сегодня попробуем на левом сервере?)
|
Admin Карма: 9 |
Добавлено: 11:05 8 сентября 2010 | |
|
конечно, на левом. не на своих же
|
geniusiru Карма: 1 |
Добавлено: 13:29 8 сентября 2010 | |
|
не пашет. по крайней мере через некоторое время в КПУ возвращает к состоянию стоппед. На самом сервер обновление так же не запускается: файлы не добавляются при обновлении. Пробовал с голого сервера стартануть апдейт. Единственно - может причина в закрытом порту под hpldsupdatetool но что-то я сомневаюсь в этом
|
Hafner Карма: 0 |
Добавлено: 21:39 8 сентября 2010 | |
|
Самый простой и верный вариант - запускать сервер как службу и ей уже управлять как кому удобно.
|
geniusiru Карма: 1 |
Добавлено: 22:21 8 сентября 2010 | |
|
кстати резонный вопрос: когда серв как служба - его можно как консоль открыть? через хлсв то понятно, а именно из службы?
|
Belfegor Карма: 3 |
Добавлено: 22:33 8 сентября 2010 | |
|
Автор: Hafner Цитата:
Самый простой и верный вариант - запускать сервер как службу и ей уже управлять как кому удобно.
Уже говорил об этом
|
Belfegor Карма: 3 |
Добавлено: 22:34 8 сентября 2010 | |
|
Автор: geniusiru Цитата:
кстати резонный вопрос: когда серв как служба - его можно как консоль открыть? через хлсв то понятно, а именно из службы?
Если не ошибаюсь, то да.
|
geniusiru Карма: 1 |
Добавлено: 22:35 8 сентября 2010 | |
|
вопрос к знатокам: а как?)
|
Admin Карма: 9 |
Добавлено: 22:47 8 сентября 2010 | |
|
Автор: geniusiru Цитата:
вопрос к знатокам: а как?)
уточнение, как запускать через коммандную строку?
|
Hafner Карма: 0 |
Добавлено: 01:24 9 сентября 2010 | |
|
Автор: Belfegor Цитата:
Уже говорил об этом
Говорить одно, а иметь практический опыт и готовое решение другое, но ты всё равно молодец, что так много постов пишешь.
Автор: Admin Цитата:
уточнение, как запускать через коммандную строку?
$command = "sc \\".$server." ".$comm." ".$service;
Где:
$server - ip сервера
$comm - команда (start, stop в зависимости от того, что желаете сделать со службой)
$service - название службы
|
Admin Карма: 9 |
Добавлено: 21:41 9 сентября 2010 | |
|
sc вроде как только для установленных служб, коими hlds не является
|
geniusiru Карма: 1 |
Добавлено: 11:52 10 сентября 2010 | |
|
но если есть возможность вызвать консоль процесса, являющего службой, то можно, сделав hlds (и вобще все серверы) службами и когда надо вызывать их консоль.
|
Hafner Карма: 0 |
Добавлено: 13:26 10 сентября 2010 | |
|
Для запуска серверов под виндой лучше юзать firedaemon, который обучен старту серверов через службы, детект падений, автоподнятие при краше, ведение логов и т.п. Далее пхп-скриптом управляем созданными службами как нашей душе угодно.
|
|
|