|
|
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Появилось необходимость из программы, написанной на джаве, перезапускать службу windows. Пока только удалось частично этого добиться следующим образом. 1. Написал такой бат-ник: автор @echo off chcp 1251 net stop ActiveMQ && net start ActiveMQ 2. Создал ярлык на этот бат-ник, установил у него в свойствах, чтобы он запускался от имени администратора 3. Написал в джаве такой метод: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Вызываю этот метод так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. В итоге он у меня всё делает (пока в скрипте прописал только остановку службы), но перед этим запрашивает в отдельном окне имя администратора и его пароль. И пока не знаю, как сделать, чтобы ввод имени пользователя и его пароля происходил в автоматическом режиме. Пытался сделать это сразу в скрипте, но у меня ничего не получалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 16:12 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Гошпади, сколько говнокода-то. Вы понимаете что половину вашего кода можно выкинуть и хуже от этого работать не станет? А вы знаете что разделители пути не ограничиваются символами / и \? И что под виндой можно использовать оба? А вопрос по-сути к Java отношения не имеет. Windows не даёт простому пользователю исполнять админские действия без подтверждения. Стандартный UAC. Можете своё приложение под админом сразу запустить и тогда вопросов не будет. Возможно через .lnk выйдет, если вы там укажете всегда запускать под админом, а потом командой (start?) будете запускать именно lnk. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 16:32 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Заметил, что выложил код не того метода, вот правильный: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 16:52 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczГошпади, сколько говнокода-то. Вы понимаете что половину вашего кода можно выкинуть и хуже от этого работать не станет? А вы знаете что разделители пути не ограничиваются символами / и \? И что под виндой можно использовать оба? А вопрос по-сути к Java отношения не имеет. Windows не даёт простому пользователю исполнять админские действия без подтверждения. Стандартный UAC. Можете своё приложение под админом сразу запустить и тогда вопросов не будет. Возможно через .lnk выйдет, если вы там укажете всегда запускать под админом, а потом командой (start?) будете запускать именно lnk. 1. Код не мой, мне его дали (взяли с какого-то американского проекта). 2. Во втором пункте я и писал, что использовал ярлыки и прописывал там запуск с админскими правами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:03 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, агонь. вообще есть константа File.separator ))) как раз то что надо тсу )) а вообще да. как то видел код навроде: иф (Файл.сепаратор="/") зен ос.сетТайп("линукс") елс ос.сетТайп("виндовс") тс, пиши батник, а да ты уже его написал )) и запускай его вот этой командой: cmd[0] = "cmd.exe"; cmd[1] = "/C"; cmd[2] = command; } Process proc = Runtime.getRuntime().exec(cmd); которую ты в принципе тоже уже написал. в чем вопрос то? в админских правах? ну так ты можешь происать запуск батника с нужными правами. или самой джаве дать в системе админские права. но тут как бы не вопрос к джаве, а к админам твоей виндовс-машины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:29 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
andreykaT, Извините, вы пьяны???) И обратились не ко мне, и пишите так сумбурно. Ещё и как-то невнимательно читаете.)) Я думал о том, что может быть в джаве есть что-то, чтобы сразу запустить команду или программу с правами администратора (и без запроса пароля). Как я писал в своём первом посте, если вешать права на линк и его запускать, то запрашивается логин и пароль. Нужно, чтобы всё происходило в авто-режиме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:37 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
MaxLichЯ думал о том, что может быть в джаве есть что-то, чтобы сразу запустить команду или программу с правами администратора (и без запроса пароля). Как я писал в своём первом посте, если вешать права на линк и его запускать, то запрашивается логин и пароль. Нужно, чтобы всё происходило в авто-режиме. В Java ничего такого нет. Фишка чисто виндовая и кросплатформенной Java на неё плевать. Но для виндовс ещё куча способов решить вопрос. https://stackoverflow.com/questions/11041509/elevating-a-processbuilder-process-via-uac/11042773 https://stackoverflow.com/questions/4662574/how-do-i-elevate-my-uac-permissions-from-java http://www.naturalborncoder.com/java/2012/08/02/starting-and-stopping-services-from-java/ Ищите инфу про UAC. На чистой Java тут ничего не закодить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:40 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
я то как раз нет а вы - хз. правами в системе заведует только одна программа. и эта программа называется "операционная система", а не та, которую вы пишете. дайте права своей жвм права админа, и никакие пароли у вас требоваться не будут. если не хотите - можете внутри скрипта прописать их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:41 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
MaxLichЗдравствуйте. Появилось необходимость из программы, написанной на джаве, перезапускать службу windows.Не может быть такой необходимости. Примите это как данность и озвучьте, пожалуйста, проблему, которую вы решаете, а не способ, который вы придумали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:43 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
у них по ходу месадж брокер периодически зависает и они решили написать патч для программы для перезапуска очереди )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:52 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
MaxLich Код: java 1. У мелкомягких учитесь? У них в SDK тоже есть условия на "мотороллеры" из прошлого тысячелетия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:00 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
andreykaT, в точку. Как раза месседж брокер периодически гонит (к сожалению без внешних ошибок, служба продолжает работать нормально), и нужно его перезапускать, чтобы всё заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:02 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, нет, древний код. Проект начало 2000-ых. Проект называется "Протеже". Какой-то там американский институт разработал. Насколько я знаю, у меня в команде это кто-то взял с сайта оракла по джаве (из примеров). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:03 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
MaxLichandreykaT, в точку. Как раза месседж брокер периодически гонит (к сожалению без внешних ошибок, служба продолжает работать нормально), и нужно его перезапускать, чтобы всё заработало. решение канеш рабочее, тут не поспоришь, но это, простите, как понос винной пробкой лечить. в принципе, на какое-то время сдержит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:08 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
MaxLichмесседж брокер периодически гонит (к сожалению без внешних ошибок, служба продолжает работать нормально), и нужно его перезапускать, чтобы всё заработало.1. Озадачьте сисадминов разбором проблем со службой. С вашей стороны - логи службы, с их - аудит системы. Ну или всё с их стороны, а с вашей - ссылки на доки; 2. В качестве временного костыля зарядите в планировщик ежечасный перезапуск службы - всяко лучше вашего велосипеда; 2.1. Если есть критерий зависания - сделайте из этого критерия триггер для вашего задания - будет перезапуск по условию, а не по времени; 3. Курите "sc sdset", но сразу предупреждаю, что у SDDL - марсианский синтаксис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:11 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
MaxLichНасколько я знаю, у меня в команде это кто-то взял с сайта оракла по джаве (из примеров).Есть у программистов плохая привычка решать сисадминские задачи прикладным кодом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:15 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
или так: есть у программистов привычка решать сисадминские задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:20 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Продублирую ответ из windows-подфорума: выкинуть враппер Тануки и взять Apache Procrun . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:26 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
ActiveMQ это же тоже Java. Можно написать обертку, которая будет слушать сигналы и закрывать Java процесс. Не исключено что такая уже есть. А Windows Service сам его перезапустит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:27 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 18:39 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Да способов мониторинга дофига , но лично я вангую проблемы service wrapper, который у Тануки сильно ограничен в бесплатной версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 19:59 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Попробовал. На втором шаге выдаёт: автор".\activemq" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 09:34 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Критерием является ошибка (эксепшн) в программе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 09:36 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, мониторинг мне не нужен, мне нужно управление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 09:38 |
|
||
|
Как перезапустить windows-службу из программы на java?
|
|||
|---|---|---|---|
|
#18+
MaxLichBlazkowicz, Попробовал. На втором шаге выдаёт: Ну, вы бы это. Прежде чем что-то делать попробовали бы разобраться? Командная строка не важна. Важно что должен быть JMX интерфейс у брокера, у которого может оказаться команда перезапуска. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39576358&tid=2122368]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 180ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...