Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как запустить выполнение программы.exe на сервере? [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): « 1 [2] 3 4 »   

> Описание: требуется помощь.
MoNSTRiK
Отправлено: 27 Января, 2010 - 04:29:06
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




JustUserR пишет:
получаете вывод с помощью считывания с popen - после этого получаете номер нужного процесса - и делаете запуск posix_kill(полученный_номер_процесса,9)


на днях попробую. о функциях tasklist /? и taskkill /? ... даже не знаю есть ли они. скорей всего их нету. Улыбка
 
 Top
viktor6
Отправлено: 28 Января, 2010 - 17:30:11
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




А под linux можно такое сделать?
 
 Top
JustUserR
Отправлено: 28 Января, 2010 - 17:34:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




viktor6 пишет:
А под linux можно такое сделать?
А под linux это делается еще проще - по сути дела все то же самое но start мы заменяем на перенаправление в /dev/null и добавляем запуск в фоновом режиме с помощью & - а для завершения daemon-а есть либо команды killall либо ps и kill по выборке с grep
Напишите более подробно задачу и постараемся вам помочь


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
viktor6
Отправлено: 28 Января, 2010 - 18:03:35
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




Держу сервера кс под linux хочу дать пользователю доступ к управлению сервера кс но по ssh как то не хочется давать. Вот и подумал а незя чтоб он через сайт мог управлять запуск остановка сервера. А тут еще случайно попал на этот форум Улыбка
пользуюсь таким скриптом управления сервера
PHP:
скопировать код в буфер обмена
  1. #!/bin/bash
  2. # for ALFA-STRIKE project
  3. # Credit: [A]SECTOR {www.alfa-strike}
  4. # email: sectorrusso@gmail.com
  5. # /etc/init.d/hlds_classic
  6. #
  7. #
  8. ### BEGIN INIT INFO
  9. # Provides: hlds_classic
  10. # Description: Counter-Strike 1.6 NoSteam linux dedicated server starting service
  11. ### END INIT INFO
  12. RETVAL=0
  13.  
  14. #Путь к серверу
  15. path="/home/viktor/KS_servera/GunGame"
  16.  
  17. start() {
  18. if [ -d $path ]; then
  19. cd $path
  20. #Строка запуска каждого сервера
  21. screen -A -m -d -S cs ./hlds_run_gungames -binary ./hlds_i686_gungames -game cstrike +port 27017 +map de_dust2 +maxplayers 22 -insecure +ip 10.100.146.15 -pingboost 2 -nomaster -pidfile hlds_gungames.pid
  22. #где xx.xxx.xx.xx ваш айпи адрес и меняем на свой порт.
  23. touch ./hlds_gungames
  24. fi
  25. }
  26.  
  27. stop() {
  28. #if [ -f $path/hlds_gungames.run ]; then
  29. killall hlds_run_gungames
  30. killall hlds_i686_gungames
  31. #kill 'cat hlds_classic.pid'
  32. cd $path
  33. rm -R hlds_gungames.pid
  34. #rm -R cron.log
  35. #запись информации в лог файл cron.log можно отключить в самом crontab, соответственно эту строку в скрипте закоментируем.  
  36. #rm -R ./hlds_gungames
  37. #fi
  38. }
  39.  
  40. #Статус >>> старт,рестарт,остановка сервера
  41. status() {
  42. cd $path;
  43. [ -f $path/hlds_gungames.pid ]
  44. }
  45. case "$1" in
  46. start)
  47. start
  48. echo "CS Server_classic starting"
  49. ;;
  50. stop)
  51. stop
  52. echo "CS Server_classic stoping"
  53. ;;
  54. restart)
  55. $0 stop
  56. $0 start
  57. echo "Restarting Gameserver: Counter-Strike 1.6"
  58. ;;
  59. *)
  60. echo $"Usage: $0 {start|stop|restart}"
  61. esac

(Отредактировано автором: 28 Января, 2010 - 18:05:23)

 
 Top
JustUserR
Отправлено: 29 Января, 2010 - 00:35:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




viktor6 В общем виде можно попробовать оставить приведенный вами SH-скрипт но переделать его под PHP-скрипт с соответствующими системными вызовами
Вот что у меня примерно получилось
PHP:
скопировать код в буфер обмена
  1. $game_path="/home/viktor/KS_servera/GunGame"
  2. $serv_opt=$_GET['serv_opt'];
  3. if($serv_opt=="start")
  4. {$launch_str="cd /$game_path && screen -A -m -d -S cs ./hlds_run_gungames -binary ./hlds_i686_gungames -game cstrike +port 27017 +map de_dust2 +maxplayers 22 -insecure +ip 10.100.146.15 -pingboost 2 -nomaster -pidfile hlds_gungames.pid";
  5. popen($launch_str,"r");
  6. }
  7. elseif($serv_opt=="stop")
  8. {system("killall hlds_run_gungames && killall hlds_i686_gungames");
  9. chdir($game_path);
  10. unlink("hlds_gungames.pid");
  11. }
  12. elseif($serv_opt=="check")
  13. {chdir($game_path);
  14. if(file_exists("hlds_gungames.pid")) {echo "Игра запущена";}
  15. else {echo "Игра не запущена";}
  16. }
Конечно данный PHP-скрипт можно доделать в том числе добавить безопасный вод и некую дополнительную проверку работоспособности сервера игры (Нарример по открытому порту или поиску в списке процессов) но я думаю пока суть понятна Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
MoNSTRiK
Отправлено: 29 Января, 2010 - 01:27:10
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




viktor6 пишет:
Держу сервера кс под linux хочу дать пользователю доступ к управлению сервера кс но по ssh как то не хочется давать. Вот и подумал а незя чтоб он через сайт мог управлять запуск остановка сервера.


Всё можно, я именно сей час дорабатываю вторую версию панели управления.
Только мы держим в промышленных масштабах сервера и юзерам удобно через сайт всё делать.

Ставишь апач на сервере, настраиваешь php и в путь.
Но это при условии что не хочется через фтп делать, так как там есть нюансы.
 
 Top
JustUserR
Отправлено: 29 Января, 2010 - 01:33:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




MoNSTRiK пишет:
Всё можно, я именно сей час дорабатываю вторую версию панели управления
Учитывая что linux это все-таки серверная ОС и основоположник daemon-ов то на ней не тольк можно но и гораздо проще заниматься такими делами - о чем говорит хотя бы наличие команд типа ps killall и оператора & а также довольно мощного встроенного языка sh/bash
А что касается решения в виде PHP-скрипта (Как автору и требуется) я привел пример кода на основе bash-скрипта
MoNSTRiK пишет:
Но это при условии что не хочется через фтп делать, так как там есть нюансы
А вот это очень интересно как можно сделать через FTP? Я знаю что вроде бы можно поставить права на запуск и запускать удаленно но так почти никогда не делал Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
MoNSTRiK
Отправлено: 29 Января, 2010 - 12:34:44
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Цитата:
о чем говорит хотя бы наличие команд типа ps killall

А эта команда даже есть в виндовс 7.
ДА и мы юзаем на сервере win server 2008

JustUserR пишет:
А вот это очень интересно как можно сделать через FTP? Я знаю что вроде бы можно поставить права на запуск и запускать удаленно но так почти никогда не делал


Ой. я не про то управление подумал Улыбка))
просто если человек с выше хочет сделать доступными настройки кс сервера, то изменять файлы (настройки) сервера, можно через фтп, удалённо.

Это походу оффтом был Улыбка) извиняюсь, спросони не сообразил сразу.

---------

А как можно давать серверу команды через rcon ? прям в консоль сервера.
 
 Top
JustUserR
Отправлено: 29 Января, 2010 - 13:40:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




MoNSTRiK пишет:
А эта команда даже есть в виндовс 7. ДА и мы юзаем на сервере win server 2008
Тогда тем более ваши задачи упращаются - ведь для управления daemon-ами это самое оно Мне же приходилось писать много таких сервисов упарвления но все эти функции делались вручную Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
viktor6
Отправлено: 29 Января, 2010 - 17:43:43
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




Я даже не против дать доступ через фтп но какой для этого потребуется скрипт даже не соображу Недовольство, огорчение
 
 Top
MoNSTRiK
Отправлено: 29 Января, 2010 - 20:15:49
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




viktor6 пишет:
Я даже не против дать доступ через фтп но какой для этого потребуется скрипт даже не соображу


оч просто. Ставим фтп сервер на машину где сервера.
И далее читаем этот раздел сайта http://php.su/articles/?cat=protocols

Там все приёмы, для того, чтобы создать веб управление через протокол фтп
 
 Top
viktor6
Отправлено: 29 Января, 2010 - 20:32:29
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




MoNSTRiK пишет:
оч просто. Ставим фтп сервер на машину где сервера.
И далее читаем этот раздел сайта http://php.su/articles/?cat=protocols

Там все приёмы, для того, чтобы создать веб управление через протокол фтп

Фтп стоит ProFTP
(Добавление)
JustUserR
Parse error: syntax error, unexpected T_VARIABLE in /home/www/test/index.php on line 3
 
 Top
JustUserR
Отправлено: 30 Января, 2010 - 00:56:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




viktor6 пишет:
JustUserR Parse error: syntax error, unexpected T_VARIABLE in /home/www/test/index.php on line 3
Я же привел основу PHP-скрипта а не полносью готовое решение - там уже действительно не хватает точки с запятой после первой строчки - а может синтаксически и что еще - но логика верная Улыбка
MoNSTRiK пишет:
Очень просто Ставим фтп сервер на машину где сервера
И далее читаем этот раздел сайта http://php.su/articles/?cat=protocols
ИМХО это уже перебор - с помощью PHP на сервере (При наличии соответствущих прав) мы может вызывать произвольные системные команды и менять содержимое файлов - а вы предлагаете создавать FTP-сервер и еще с ним обмениваться командами Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
MoNSTRiK
Отправлено: 30 Января, 2010 - 01:15:13
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




JustUserR пишет:
ИМХО это уже перебор - с помощью PHP на сервере (При наличии соответствущих прав) мы может вызывать произвольные системные команды и менять содержимое файлов - а вы предлагаете создавать FTP-сервер и еще с ним обмениваться командами


Это в том случае, когда управление производится с удалённого сервера, а так конечно Улыбка
 
 Top
JustUserR
Отправлено: 30 Января, 2010 - 01:57:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




MoNSTRiK пишет:
Это в том случае, когда управление производится с удалённого сервера, а так конечно Улыбка
Может быть вы правы но лично я бы в случае работы с удаленным сервером написал бы простенький TCP-сервер и TCP-клиент для обмена соответствующей информацией о запуске и остановке daemon-а - по мне это будет очевиднее да и о правах доступа и запуска надо меньше задумываться Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB