gifts2017

Скрипт (js) перезапуска сервиса "Агент сервера 1С:Предприятия 8.2" и "Агент сервера 1С:Предприятия 8.3", Hasp License Manager, с очисткой каталогов snccntx

Опубликовал Aleksey Zhuchkov (MrWonder) в раздел Администрирование - Сервисные утилиты

Задача: перезапуск сервиса 1С, очистка каталогов snccntx и перезапуск HASP LM (для отключения нулевых сессий), HASP Loader.

*Обновление 13-11-2013: 

Изменил механизм определения версии останавливаемых процессов rphost


*Обновление 03-09-2013:

1. Перезапуск без сообщений выполняется с параметром командной строки support1c

2. При запуске без параметров требуется два подтверждения для перезапуска.

3. Сервис 1С будет запускаться, пока не запустится.

4. В случае любой ошибки в скрипте (падение) будет осуществлен запуск сервиса 1С.


Данный скрипт выполняет следующие действия:
1.Останавливает службу "Агент сервера 1С:Предприятия 8.2" (как x32, так и x64) (если такая есть)
2.Проверяет после остановки службы наличие в памяти незавершенных процессов rphost.exe, rmngr.exe и ragent.exe. Принудительно завершает их.
3.Останавливает службу HASP License Manager (если такая есть), HASP Loader.
4.Очищает каталоги snccntc для каждого из локальных кластеров.
5.Запускает службу HASP LM, HASP Loader и "Агент сервера 1С:Предприятия 8.2".

Все этапы логгируются с обработкой исключительный ситуаций. Лог файл пишется в каталог где находится скрипт.

Никаких параметров задавать не нужно. Запускаете скрипт - получаете результат.

Если будуте запускаете через планировщик заданий - советую использовать cscript.exe вместо wscript.exe.

UPD 06-10-2013

Исправил ошибку в отображении 10-го месяца в лог-файле
Исправил завершение незавершившихся процессов останавливаемых служб
Добавил запуск служб HASP* при исключительной ситуации
Добавил запуск всех служб при невозможности завершить процесс останавливаемой службы

UPD 11-07-2014

Добавил отдельный скрипт для перезапуска служб 8.3, кроме того, скрипт для 8.3

 - чистит каталог temp пользователя, под которым запущен 1с

 - в случае любой непредвиденной ситуации скрипт будет пытаться запустить службу 1с пока не сможет этого сделать

 - содержит мелкие улучшения

UPD 01-04-2015

 - скрипт для 8.3 завершает еще и клиентов 1с, с запросом при ручном запуске и без запроса через параметр командной строки

 - мелкие улучшения

Дальнейшего развития скрипта для 8.2 не предполагается.

UPD 01-06-2015

 - Реализована поддержка UAC при ручном запуске. Если запускаете из планировщика с ключом командной строки - запускайте из-под системной учетной записи - там повышение привилегий не требуется.

 - Переделал скрипт для 8.2 из сочного и свежего скрипта для 8.3

UPD 17-08-2015

 - Добавил поддержку Windows Server 2012

Скачать файлы

Наименование Файл Версия Размер
Скрипт перезапуска 8.2 135
.js 23,57Kb
20.08.15
135
.js 23,57Kb Скачать
Скрипт перезапуска 8.3 126
.js 23,58Kb
20.08.15
126
.js 23,58Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Spektr Тунда (Spektr) 07.08.13 10:53
Если будуте запускаете через планировщик заданий - советую использовать cscript.exe вместо wscript.exe.


В планировщике заданий я могу выбрать скриптт 1c_restarter.js или программу cscript.exe
Как запустить скрипт исползуя cscript.exe?
2. Shrek Shrek (Shrek2015) 07.08.13 11:19
неплохая штука :) спасибо автору
3. Aleksey Zhuchkov (MrWonder) 07.08.13 11:26
(1) Spektr, как-то так %windir%\system32\cscript.exe "путь_к_скрипту\1c_restarter.js"
(2) Shrek2015, Пожалуйста :)
4. Spektr Тунда (Spektr) 07.08.13 14:25
Благодарю за ответ. Попробую.
5. Иван Ляхов (Alonarista) 07.08.13 19:32
Как насчет работы с двумя одновременно работающими серверами 1с?
Например 8.1 и 8.2?
6. Aleksey Zhuchkov (MrWonder) 07.08.13 22:43
(5) Alonarista, будет перезагружен только 8.2
7. Lo Fi (frai) 08.08.13 17:55
А можно подробней зачем чистить каталог "snccntc" для тех, кто не читает ЖКК?
8. Aleksey Zhuchkov (MrWonder) 08.08.13 18:27
(7) frai, что такое ЖКК?
Чистка SNCCNTX помогает от проблем с программными ключами, от проблем с сеансами пользователей.
9. Олег Шалимов (CaSH_2004) 10.08.13 23:45
(0) Подскажите а в каких случаях это требуется? Или с ним такие же проблемы как с кэшем пользователя.
10. Aleksey Zhuchkov (MrWonder) 11.08.13 13:39
(9) CaSH_2004, Точно у нас проявлялись две проблемы:
1. Слетали программные лицензии - переставали выдаваться сервером приложений.
2. Возникала проблема с определенными сессиями (глубоко проблему не диагностировал). Проявляется когда при просмотре сессий в оснастке сервера приложений выскакивает ошибка с предложением продолжить, и все - сессии дальше косячной не отображаются. Еще проявляется при обходе сессий другим моим скриптом, который считает количество лицензий на кластере (и потом передает в систему мониторинга Zabbix) - там просто фатальный вылет.
11. Аркадий Кучер (Abadonna) 13.08.13 04:48
Немного offtop, кто сталкивался с такой проблемой?
RMNGR.EXE

Суть проблемы:
Проблема вызывается висящим в памяти процессом rmngr.exe, который блокирует доступ к папкам сервера 1 С предприятия и не дает нормально запускаться службе агента 1С предприятия.
Говорят, это поправили в тестовой платформе 8.2.15.315.
Помогает ручное завершение этого процесса через диспетчер задач и перезапуск службы агента сервера 1С предприятия.
Для этого надо залогиниться в систему после перезагрузки и проделать все манипуляции ручками.

P.S. Может в 8.2.15.315 и далее и решили, а вот на 8.3.3.687 я её поимел по всей красе ;)
Решил, конечно, но "Шурик, это же не наш метод! В то время, когда космические корабли бороздят..."
12. Дмитрий Шерстобитов (DitriX) 26.09.13 11:32
(11) я вот тоже сегодня статью обновил (http://infostart.ru/public/196686/)
почитай, там тоже есть до утра приколов.
Тот скрипт который ты написал, он лечит кучу проблем, по идее. Но проблемы не только у тебя :)

Кстати - проверь драйвера, особенно на видик.

И почитай дампы от 1С.
13. Aleksey Zhuchkov (MrWonder) 26.09.13 14:15
(12) DitriX, Спасибо, мне полезна информация. Скоро буду ваять скрипт перехода СП 1с с 8.2 на 8.3. Обновление релиза 8.2 уже есть, не руками же на 90 серверах фигарить ))
14. Дмитрий Шерстобитов (DitriX) 26.09.13 16:37
(13) но ты учти, что тебе потом руками ковырять эти конфы :)
А часть багов 1С признала, но к исправлению только в 8.3.4 планирует....
15. Aleksey Zhuchkov (MrWonder) 26.09.13 16:51
(14) DitriX, Неа) мне не надо. Есть штат сотрудников, которые протестируют конфы перед переходом, и поправят, при необходимости.
16. V. L. (Vladal) 08.10.13 10:37
MrWonder, а выложи, пожалуйста, текст скрипта в статью. Если не сложно.
17. Aleksey Zhuchkov (MrWonder) 08.10.13 13:14
18. Andrey Kazhurin (kernelio) 07.04.14 15:52
(17) MrWonder, выложи и мне скрипт, пожалуйста.
19. Дмитрий (sommid) 29.05.14 13:26
спасибо. уже немного поднадоели зависающие процессы rmngr.exe
20. Евгений Нечипоренко (Nechipury) 29.07.14 12:34
Запускаю скрипт, дает ошибка не совместимости типа, 8.3 самая свежая стоит. в чем проблема?
21. Дмитрий (sommid) 29.07.14 15:08
(20) качал пример для 8.2 и сам исправлял в нужных местах на 8.3, отключал ненужное, вроде все интуитивно понятно, работает.
22. Aleksey Zhuchkov (MrWonder) 30.07.14 02:05
23. Владимир Буоц (vbuots) 07.10.14 11:30
Спасибо большое за такой качественный скрипт. Где же Вы были хотя бы год назад ;(. Использую теперь только его!!!
24. Aleksey Zhuchkov (MrWonder) 07.10.14 14:45
(23) vbuots, На здоровье)), рад что Вам пригодилось.
25. Dmitry Afanasyev (afanasko) 16.01.15 18:43
Большое спасибо! Понадобился скрипт для корректной остановки сервера 1С перед выключением сервака. Ваша разработка идеально подошла. Убрал строчки с запуском и поместил скрипт в планировщик - работает как часы!
26. Alex Bol (zombi81) 16.05.15 09:32
А если в базе работают пользователи, насколько корректно будет использовать такой скрипт?
27. Alex Bol (zombi81) 16.05.15 09:32
Или выполняются регламентные задания.
28. Alex Bol (zombi81) 16.05.15 09:33
Забыл подписаться на ответы.
29. Aleksey Zhuchkov (MrWonder) 16.05.15 14:08
Если в базе работают пользователи то сеансы их работы будут завершены, регламентные, соответственно, тоже.
Проблем ни разу не было с этим )
30. Роберт В е р т и н с к и й (v3rter) 01.07.15 14:56
Хотел написать в личку, но что-то пошло не так и не получилось. Не в обиду: закиньте текст публикации в word на предмет красных волнистых линий.
31. Aleksey Zhuchkov (MrWonder) 06.07.15 23:41
32. _Shadow_ (_Shadow_) 21.09.15 18:14
(31) MrWonder, поделитесь скриптом, если не жалко.
Не хочется изобретать велосипед, а с финансами сейчас совсем беда.
33. isn Игнатьев (isn) 15.12.15 15:35
Подскажите, при запуске скрипта на каждом кластере серверов, "глюков в работе не возникало"?
34. Aleksey Zhuchkov (MrWonder) 16.12.15 09:21
(33) isn, поясните, что Вы имеете ввиду под "запуске скрипта на каждом кластере серверов"? Очистка сеансовых данных для нескольких кластеров одного СП 1с предусмотрена. Пришлите лог.
35. andr bat (zoytsa) 16.02.16 08:16
День добрый!
А на Сервер 8.1 сложно будет адаптировать скрипт самому?
36. Aleksey Zhuchkov (MrWonder) 16.02.16 09:30
(35) zoytsa, технически не очень, надо в заголовке поменять переменную query_1c_service, чтобы выбирал службу 1с 8.1. А вот на счет очистки каталогов snccntc надо смотреть, я не знаю о наличии и размещении каталога сеансовых данных в 8.1 - в коде вызов функции delete_snccntx
37. Михаил Немчинов (mnemchinov) 20.02.16 07:31
При работе через планировщик выдал на экран такое сообщение: Please, contact zhuchkov... attaching this screenshot - exception while executing: cmd.exe /c C:\Windows\system32\taskkill.exe /f /pid 5916
Сам скрипт при этом ждал пока ему нажмут ОК. Замечал такое поведение пару раз.
38. Aleksey Zhuchkov (MrWonder) 20.02.16 09:37
(37) mnemchinov, какая ОС, включен ли UAC, ключи стоят аппаратные в сервере?
39. Петров Иван (sibmen) 22.06.16 16:10
(17) MrWonder, Добрый человек поделись скриптом ,пожалуйста, очень надо!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа