Данный скрипт выполняет следующие действия:
1.Останавливает службу "Агент сервера 1С:Предприятия 8.2" (как x32, так и x64) (если такая есть)
2. Завершает работу всех клиентов 1С на локальном ПК (если выбрано)
3.Проверяет после остановки службы наличие в памяти незавершенных процессов rphost.exe, rmngr.exe и ragent.exe. Принудительно завершает их.
4.Останавливает службу HASP License Manager (если такая есть), HASP Loader.
5.Очищает каталоги snccntc для каждого из локальных кластеров.
6.Запускает службу HASP LM, HASP Loader и "Агент сервера 1С:Предприятия 8.x".
Все этапы логгируются с обработкой исключительный ситуаций. Лог файл пишется в каталог где находится скрипт.
Никаких параметров задавать не нужно. Запускаете скрипт — получаете результат.
Если будуте запускаете через планировщик заданий — советую использовать cscript.exe вместо wscript.exe.
UPD 06-10-2013
— Исправил ошибку в отображении 10-го месяца в лог-файле
— Исправил завершение незавершившихся процессов останавливаемых служб
— Добавил запуск служб HASP* при исключительной ситуации
— Добавил запуск всех служб при невозможности завершить процесс останавливаемой службы
UPD 11-07-2014
Добавил отдельный скрипт для перезапуска служб 8.3, кроме того, скрипт для 8.3
— чистит каталог temp пользователя, под которым запущен 1с
— в случае любой непредвиденной ситуации скрипт будет пытаться запустить службу 1с пока не сможет этого сделать
— содержит мелкие улучшения
UPD 01-04-2024
— скрипт для 8.3 завершает еще и клиентов 1с, с запросом при ручном запуске и без запроса через параметр командной строки
— мелкие улучшения
Дальнейшего развития скрипта для 8.2 не предполагается.
UPD 01-06-2024
— Реализована поддержка UAC при ручном запуске. Если запускаете из планировщика с ключом командной строки — запускайте из-под системной учетной записи — там повышение привилегий не требуется.
— Переделал скрипт для 8.2 из сочного и свежего скрипта для 8.3
UPD 17-08-2024
— Добавил поддержку Windows Server 2012
UPD 20-11-2024
— Сделал проверку UAC Elevation для всех ОС без учёта версии (будет работать только на Windows >=2008)
UPD 14-06-2024
— Исправил ошибку, при которой в случае автоматического выполнения перезапуска (без подтверждения) проверка на запуску службы 1С никогда не завершалась.
UPD 01-08-2024
— разобрался с пропуском незавершаемых процессов 1С, находящихся с статусе suspended.
— причесал код и чуть-чуть логику. Там, где смог разобраться ))
UPD 22-10-2024
— bugfix
В планировщике заданий я могу выбрать скриптт 1c_restarter.js или программу cscript.exe
Как запустить скрипт исползуя cscript.exe?
неплохая штука 🙂 спасибо автору
(1) Spektr, как-то так %windir%system32cscript.exe «путь_к_скрипту1c_restarter.js»
(2) Shrek2015, Пожалуйста 🙂
Благодарю за ответ. Попробую.
Как насчет работы с двумя одновременно работающими серверами 1с?
Например 8.1 и 8.2?
(5) Alonarista, будет перезагружен только 8.2
А можно подробней зачем чистить каталог «snccntc» для тех, кто не читает ЖКК?
(7) frai, что такое ЖКК?
Чистка SNCCNTX помогает от проблем с программными ключами, от проблем с сеансами пользователей.
(0) Подскажите а в каких случаях это требуется? Или с ним такие же проблемы как с кэшем пользователя.
(9) CaSH_2004, Точно у нас проявлялись две проблемы:
1. Слетали программные лицензии — переставали выдаваться сервером приложений.
2. Возникала проблема с определенными сессиями (глубоко проблему не диагностировал). Проявляется когда при просмотре сессий в оснастке сервера приложений выскакивает ошибка с предложением продолжить, и все — сессии дальше косячной не отображаются. Еще проявляется при обходе сессий другим моим скриптом, который считает количество лицензий на кластере (и потом передает в систему мониторинга Zabbix) — там просто фатальный вылет.
Немного offtop, кто сталкивался с такой проблемой?
RMNGR.EXE
Суть проблемы:
Проблема вызывается висящим в памяти процессом rmngr.exe, который блокирует доступ к папкам сервера 1 С предприятия и не дает нормально запускаться службе агента 1С предприятия.
Говорят, это поправили в тестовой платформе 8.2.15.315.
Помогает ручное завершение этого процесса через диспетчер задач и перезапуск службы агента сервера 1С предприятия.
Для этого надо залогиниться в систему после перезагрузки и проделать все манипуляции ручками.
P.S. Может в 8.2.15.315 и далее и решили, а вот на 8.3.3.687 я её поимел по всей красе 😉
Решил, конечно, но «Шурик, это же не наш метод! В то время, когда космические корабли бороздят…»
(11) я вот тоже сегодня статью обновил (http://infostart.ru/public/196686/)
почитай, там тоже есть до утра приколов.
Тот скрипт который ты написал, он лечит кучу проблем, по идее. Но проблемы не только у тебя 🙂
Кстати — проверь драйвера, особенно на видик.
И почитай дампы от 1С.
(12) DitriX, Спасибо, мне полезна информация. Скоро буду ваять скрипт перехода СП 1с с 8.2 на 8.3. Обновление релиза 8.2 уже есть, не руками же на 90 серверах фигарить ))
(13) но ты учти, что тебе потом руками ковырять эти конфы 🙂
А часть багов 1С признала, но к исправлению только в 8.3.4 планирует….
(14) DitriX, Неа) мне не надо. Есть штат сотрудников, которые протестируют конфы перед переходом, и поправят, при необходимости.
MrWonder, а выложи, пожалуйста, текст скрипта в статью. Если не сложно.
(16) Vladal, см. лс.
(17) выложи и мне скрипт, пожалуйста.
спасибо. уже немного поднадоели зависающие процессы rmngr.exe
Запускаю скрипт, дает ошибка не совместимости типа, 8.3 самая свежая стоит. в чем проблема?
(20) качал пример для 8.2 и сам исправлял в нужных местах на 8.3, отключал ненужное, вроде все интуитивно понятно, работает.
(20) Nechipury, что в логе?
Спасибо большое за такой качественный скрипт. Где же Вы были хотя бы год назад ;(. Использую теперь только его!!!
(23) vbuots, На здоровье)), рад что Вам пригодилось.
Большое спасибо! Понадобился скрипт для корректной остановки сервера 1С перед выключением сервака. Ваша разработка идеально подошла. Убрал строчки с запуском и поместил скрипт в планировщик — работает как часы!
А если в базе работают пользователи, насколько корректно будет использовать такой скрипт?
Или выполняются регламентные задания.
Забыл подписаться на ответы.
Если в базе работают пользователи то сеансы их работы будут завершены, регламентные, соответственно, тоже.
Проблем ни разу не было с этим )
Хотел написать в личку, но что-то пошло не так и не получилось. Не в обиду: закиньте текст публикации в word на предмет красных волнистых линий.
(30) v3rter, Спасибо!
(31) поделитесь скриптом, если не жалко.
Не хочется изобретать велосипед, а с финансами сейчас совсем беда.
Подскажите, при запуске скрипта на каждом кластере серверов, «глюков в работе не возникало»?
(33) isn, поясните, что Вы имеете ввиду под «запуске скрипта на каждом кластере серверов»? Очистка сеансовых данных для нескольких кластеров одного СП 1с предусмотрена. Пришлите лог.
День добрый!
А на Сервер 8.1 сложно будет адаптировать скрипт самому?
(35) zoytsa, технически не очень, надо в заголовке поменять переменную query_1c_service, чтобы выбирал службу 1с 8.1. А вот на счет очистки каталогов snccntc надо смотреть, я не знаю о наличии и размещении каталога сеансовых данных в 8.1 — в коде вызов функции delete_snccntx
При работе через планировщик выдал на экран такое сообщение: Please, contact zhuchkov… attaching this screenshot — exception while executing: cmd.exe /c C:Windowssystem32 askkill.exe /f /pid 5916
Сам скрипт при этом ждал пока ему нажмут ОК. Замечал такое поведение пару раз.
(37) mnemchinov, какая ОС, включен ли UAC, ключи стоят аппаратные в сервере?
(17) Добрый человек поделись скриптом ,пожалуйста, очень надо!