
У меня такая ситуация. Я хочу, чтобы скрипт запускался нажатием кнопки на моем сайте (страница управления администратора). Мой веб-сервер (linux) и выделенный ящик (windows 2012) находятся в разных местах.
Например:
Страница веб-сервера | Сервер Ded
|
«Перезапустить приложение» ------>------>---|-->->Скрипт_для_перезапуска_приложения
Сервер Windows 2012 не запускает службу веб-сервера Windows IIS. Я бы предпочел не запускать его, так как он не будет запускать веб-страницу.
Возможно ли это вообще?
Спасибо,
Клейтон
решение1
То, что вы предлагаете, не является тривиальным. Есть несколько подходов:
Заставьте свое приложение, работающее на Windows Box, прослушивать сообщения, которые говорят ему перезапуститься. Когда оно получает такое сообщение, перезапустите его. Есть несколько способов прослушивания такого сообщения, и вы можете выбрать самый простой из них в зависимости от того, как вы создали приложение. Например, начните прослушивать известный порт и, когда получите сообщение с надписью «перезапустить», сделайте это. Очевидно, что для этого требуется возможность изменить приложение. Вариантом этого является создание другого приложения/службы, которая просто прослушивает сообщения о перезапуске и останавливает/запускает исходное приложение. Это может быть желательно, если вы не можете изменить исходное приложение или предпочитаете этого не делать.
Используйте что-нибудь в Windows, чтобы перезапустить приложение. Существуют встроенные способы (например, WMI) для перезапуска служб и, возможно, для запуска и остановки процессов. Это сложнее, потому что вы хотите сделать это из не-Windows-окна. Есть отличный инструмент 'psexec'http://technet.microsoft.com/en-gb/sysinternals/bb897553.aspxчто позволяет очень легко делать такие вещи удаленно, и есть версия для Linuxhttp://steronius.blogspot.co.uk/2013/05/psexec-via-linux.htmlтак что это может сработать нормально. Это не потребует программирования, но потребует больше возни с конфигурацией и аутентификацией... возможно, или это может просто сработать немедленно. Вы могли бы вызвать psexec из вашего скрипта php с необходимыми аргументами командной строки, чтобы он перезапустил ваше приложение Windows.
решение2
Взгляните на winexe. Это командная строка для Linux, похожая на Windows-инструмент psexec. Winexe удаленно выполняет команды в системах Windows из Linux. Пакеты для winexe для нескольких распространенных дистрибутивов Linux доступны напакет openSUSE winexeВеб-сайт.