Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Могу ли я запустить UniFi Controller как службу Windows с java7 на Windows7 x64?, UniFi Network
 
Могу ли я запустить UniFi Controller как службу Windows с java7 на Windows7 x64? Информация с wiki.ubnt.com не помогает.
 
Похоже, что запустить контроллер UniFi как настоящую службу x64 возможно, но я бы не рассчитывал, что настройки сохранятся после обновления. Гораздо проще использовать встроенную Java JRE или системную x86 JRE. Чтобы запустить на x64 JRE, начинайте с инструкций из базы знаний, вплоть до команды «java -jar lib\ace.jar installsvc». Похоже, что существует несовместимость с версией Procrun (похоже, она относится к Tomcat6?) и методом запуска «exe» под x64. Скачайте бинарники Windows из исходного проекта и распакуйте их в новую папку под <unifi_base>, например, commons-daemon. Измените существующую запись службы UniFi в реестре: удалите значение WOW64 DWORD и обновите ImagePath, указав путь к нативному «prunsrv.exe» в каталоге «amd64» (у меня это «C:\ProgramData\Ubiquiti UniFi\commons-daemon\amd64\prunsrv.exe»). Теперь, когда у вас есть x64-исполняемый файл, вы можете загрузить jvm.dll для x64. Создайте и запустите ярлык на «prunmgr.exe» с аргументом командной строки «//ES//UniFi» (или просто запустите его напрямую). На вкладке Java обновите «Java Virtual Machine», указав точный путь к серверному «jvm.dll», например, «C:\Program Files\Java\jre7\bin\server\jvm.dll»; на вкладке Startup измените режим на «jvm». По крайней мере, у меня именно так получилось. Возможно, для вас это не стоит усилий, но я, как говорится, упёртый. Наверное, стоит добавить, что моя служба работает под учётной записью виртуальной службы в Windows Server 2012 Essentials. Я точно не помню, был ли по умолчанию «Local Service» или «Local System», но с первым, думаю, могут возникнуть проблемы.
 
Установка этого в качестве службы из системной учётной записи вроде бы работает нормально, за исключением того, что она отклоняет подключения от всего, кроме самой себя. Если кто-то захочет покопаться в этом, возможно, мы найдём полное решение.

При подключении к серверу через HTTPS после установки под системной учётной записью возникает ошибка:  
Error 103 (net::ERR_CONNECTION_ABORTED): Unknown error.

Чтобы запустить cmd от имени системы, просто создайте запланированную задачу с интерактивным запуском cmd.exe. Если возникают проблемы с переменной PATH при установке службы, используйте статичный путь к папке Java bin.  
Например: "C:\Program Files (x86)\Java\jre7\bin"  
java -jar lib\ace.jar installsvc

Примечание: ничего не изменится до версии 8.  
Не забудьте, что нужно находиться в директории Ubiquiti UniFi при запуске команды установки службы.
 
После нескольких попыток я запустил UniFi контроллер на Windows 2008 R2 x64 с Java 7. Я пробовал шаги, которые предложил infomatix, безуспешно. Причём Java 7 уже была установлена, и путь к Java 7 был правильный (использовал команду "where java" для поиска). Потом я удалил UniFi и Java, а затем поставил UniFi, позволив ему скачать Java (как советовал networxpc). Получилась рабочая установка UniFi, но с сильно устаревшей версией Java 6. Я попытался обновить Java, надеясь получить последнюю версию Java 6, но в итоге получил Java 7. Это сломало контроллер UniFi, пока я не обновил путь к Java в переменной PATH. (Кажется, мне ещё пришлось обновить путь к Java в ярлыке контроллера и, возможно, переустановить службу UniFi, но я не записывал и уже не помню).

P.S. Сейчас всё работает нормально с последним обновлением Java 7. Я использую версию контроллера 2.3.6, в которой нет бага, описанного в вики, когда контроллер закрывается при выходе локального пользователя из системы.

P.P.S. Для меня было важнее заставить систему работать, чем заниматься личными изысканиями, но предполагаю, что сложность вызвана тем, что при первой установке Java я поставил 64-битную версию Java 7. Она не работала. А когда я запустил обновление через панель управления Java на устаревшей Java 6, которую поставил UniFi контроллер, получил 32-битную версию Java 7. В итоге обе версии были одного обновления Java 7, пути были правильные, но 64-битная не работала, а 32-битная — да. Это вообще имеет какой-то смысл?
 
Чтобы прояснить для тех, кто такой же "умник", как и я.

1. Убедитесь, что UniFi не запущен.  
2. Найдите папку с установкой Java. Для 64-битной системы обычно это "C:\Program Files (x86)\Java\jre6\bin", в противном случае — "C:\Program Files\Java\jre6\bin".  
3. Добавьте этот путь в переменную PATH (через Компьютер → Свойства → Дополнительные параметры системы → Переменные среды → Создать новую системную переменную: Имя=Unifi_base, Значение=путь выше).  
4. Запустите командную строку от имени администратора.  
5. Перейдите в папку установки UniFi (именно этот шаг меня сбил с толку).  
6. Выполните команду: java -jar lib\ace.jar installsvc  
(Если перейти в папку unifi_base\lib\, то вводить java -jar lib\ace.jar не придется — достаточно будет java -jar ace.jar.)
 
Я ищу это решение для сервера 2k8, но не могу найти... Можешь объяснить немного понятнее? Спасибо за помощь.
Страницы: 1
Читают тему (гостей: 1)