[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удалённый запуск .exe на стороне сервера
Гость_Fantom
Уважаемые специалисты, встала острая необходимость запуска .exe-шника на стороне сервера удалённо, из панели управления написанной на PHP. exe-шник представляет собой программу, подготавливающую игровой сервер к остановке. Команды system(), exec(), и им подобные передают результаты работы программы на саму страницу, а сама программа работает в скрытом режиме, а нужно, чтобы exe-шник запускался на сервере обычным окном, так же, как если бы его просто запустили кликом мышки, и при этом страница не ожидала результатов от программы, и не подвисала. Подскажите пожалуйста, возможно ли это, и как это реализовать на PHP? Буду очень благодарен.

Операционная система сервера - Windows XP
Используется Apsche 2 + PHP 5



Спустя 6 минут, 46 секунд (10.11.2010 - 11:04) Basili4 написал(а):
Я думаю что не проблема.

Я вижу себе это так запускаем планировщиком скрипт пых, перл, с, Basic который проверяет наличие файла Stop если он его находит он его удаляет и делает что тебе надо иначе выходит.

скрипт на старнице при получении команды создает файл Stop.

Спустя 3 минуты, 2 секунды (10.11.2010 - 11:07) Faantoom написал(а):
Я в PHP начинающий, не могли бы вы привести пример кода?

Спустя 1 час, 26 минут, 7 секунд (10.11.2010 - 12:33) Basili4 написал(а):
Скрипт создания файла Stop
<?php
file_put_contents('stop', '');
?>
Скрипт проверяющий наличие файла stop
<?php
if (file_exists('путь/stop')) exec('Запускаю свой .exe');
?>

Второй скрипт в планировщик запускай 1 раз в минуту.

Спустя 1 минута (10.11.2010 - 12:34) Faantoom написал(а):
Спасибо, буду пробовать)

Спустя 10 минут, 13 секунд (10.11.2010 - 12:45) Faantoom написал(а):
Попробовал, проблема с ожиданием страницей результатов решилась, страница не висит. exe запускается, появляется в процессах, но интерфейса всё-равно не видно. Нужно чтобы ехе открылся в окне, как при обычном запуске через проводник. Это возможно?

Спустя 3 минуты, 52 секунды (10.11.2010 - 12:49) Basili4 написал(а):
Faantoom
пробуй разные варианты запуска system exec как вариант делать декстопную прослойку которой и зпускать твое приложение как надо.

механизм такой
скрпт пхп -> Просослойка ->твое приложение.

Спустя 3 минуты, 50 секунд (10.11.2010 - 12:52) Faantoom написал(а):
Цитата
скрпт пхп -> Просослойка ->твое приложение.

Из-за определённых нюансов такой вариант использовать не могу, так как это негативно скажется на работе сервера.

Спустя 1 минута, 30 секунд (10.11.2010 - 12:54) Basili4 написал(а):
Ну тада ищи решение я тебе дал наводку

Спустя 2 минуты, 31 секунда (10.11.2010 - 12:56) Faantoom написал(а):
Спасибо, буду искать

Спустя 33 минуты, 7 секунд (10.11.2010 - 13:29) Faantoom написал(а):
Проблему решил))

Если Apache стоит как служба, то exe запускается от имени системной учетной записи без права "доступа к рабочему столу". В настройках службы Apache нужно просто поставить галочку "Разрешить доступ к рабочему столу", и exe нормально запускается))

Для запуска использовал такой код:
<?
shell_exec('stop.exe');
?>

Спустя 3 месяца, 1 день, 20 часов, 49 минут, 21 секунда (12.02.2011 - 10:19) Guest написал(а):
<?php
file_put_contents('stop', '');
?>
Скрипт проверяющий наличие файла stop
<?php
if (file_exists('путь/stop')) exec('Запускаю свой .exe');
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.