#0
by Stavral
Заметил такую странную штуку: частенько при перезапуске службы агента 1С после остановки она не стазу дает себя запустить. Т.е. нажимаешь "Запустить" - служба повисит активной секунды две и опять отрубится. И так до пяти раз. В чем тут дело? Надо ждать какое-то время, прежде чем пытаться ее запустить?
#1
by DrZombi
А ты не теребонкай :) Если ты стартуешь сервак, чего ты так спешишь? Все ровно все кто был отпали тут же :)
#2
by zulu_mix
смотри службы от которых зависит сервер 1с. пока они не запустятся - сервер не стартанет
#3
by tdm
стоит только одна версия сервера 1С ? (или несколько 8.1,8.2,8.3) из памяти все рабочие процессы успевают выгрузиться или вы просто по наитию стоп/старт жмёте ?
#5
by tdm
+ забыл написать - виндовый журнал посмотрите, как минимум событие падения службы и описание должно быть
#7
by etc
Иногда возможно менеджер кластера подвисает и не сразу стопорится. Поскольку единственный порт занят новый не запускается. Как правило еще и некторые раб. процессы висят. Это из моих наблюдений.
#8
by etc
при нормальном рестарте сесси не отваливаются. Соответственно например если подвис менеджер регл. заданий можно рестартануть службу и никто не заметит. Ну разве что замрет клиент секунд на пять - десять
#9
by ptiz
Запускай только после того, как увидишь в диспетчере задач, что все старые процессы погасились.
#10
by Stavral
Версия стоит одна. Дело в том, что я не могу визуально наблюдать выгрузку процессов, т.к. службу перезапускает скрипт в 5 часов утра. Просто у нас сервера обновляются ночью, машины перезагружаются и служба не стартует сама после этого. Т.ч. скрипт проверяет ее статус и запускает/перезапускает. Но, как видно, не всегда срабатывает, т.к. сегодня утром служба была отключена. Судя по логам скрипта - он ее запустил в 5 утра. Но, видимо, после этого она опять отрубилась. В общем, как я понял, надо выставить таймаут побольше, чтобы дать службе время до конца остановиться.
#14
by DrZombi
Сомневаюсь, я в этом успехе. А что будет с теми, кто запускал в этот момент мего отчет на 30 минут? :)
#16
by DrZombi
+ А то чувство, что ты хочешь как у этого "Без разрывов 2 года, и кайф обламывают" :)
#17
by Stavral
@Echo Off Set logfile="C:1C
eStart1C.log" Set ServiceName="1C:Enterprise 8.3 Server Agent (x86-64)" Echo ---->>%logfile% rem checking 1C agent status SC query %ServiceName%|Find /i "RUNNING">nul rem if the service is running - restart it if "%ERRORLEVEL%"=="0" ( echo %serviceName% is running>>%logfile% SC stop %ServiceName%>nul timeout 10 /nobreak>nul SC start %ServiceName%>nul echo %serviceName% restarted at: %date%, %time%>>%logfile% rem if the service is NOT running - start it ) else ( echo %serviceName% is NOT running>>%logfile% SC start %ServiceName%>nul echo %serviceName% started at: %date%, %time%>>%logfile% ) Exit
#20
by etc
держи мой вариант скрипта (vbs): Преймущество в том что в нем не жесткий таймаут а ожидание пока остановится служба. stComputer = "localhost" stService = "" stScriptName = wscript.ScriptName ' Соберем параметры командной строки set argn = wscript.arguments.named set arg = wscript.arguments.unnamed if argn.exists("c") then stComputer = argn.item("c") end if if arg.count >= 1 then stService = arg.item else wscript.echo "Использование:" & vbcrlf & _ " " & stScriptName & " /c:<имя компьютера> <имя службы>" & vbcrlf & _ vbcrlf & _ "Если <имя компьютера> не указано то используется localhost." & vbcrlf wscript.quit end if ' Попробуем найти сервис и рестартануть его. ' Если сервис уже был остановлен то просто запустим его set objLocator = CreateObject("WbemScripting.SWbemLocator") set objConn = objLocator.ConnectServer(stComputer,"rootcimv2") on error resume next set svc = objConn.Get("Win32_Service.Name='" & stService & "'") if err.number<>0 then wscript.echo "Служба " & stService & " не найдена на " & stComputer wscript.quit end if on error goto 0 wscript.echo "Перезапуск службы " & stService & " на " & stComputer if svc.Started then svc.StopService ' ждем пока служба остановится но не более 300 секунд k=1 Do WScript.Sleep 2000 State = objConn.Get("Win32_Service.Name='" & stService & "'").State k=k+1 Loop Until (State="Stopped" or k>150) if State<>"Stopped" then wscript.echo "Не удалось остановить службу " & stService & " на " & stComputer wscript.quit end if end if svc.StartService WScript.Sleep 5000 ' Проверим запустился ли сервис set svc = objConn.Get("Win32_Service.Name='" & stService & "'") if not svc.Started then wscript.echo "Не удалось запустить службу " & svc.Name & " на " & stComputer wscript.quit end if
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- 8.2 "Плодятся" rphost-ы
- Вывести иерархический справочник (с видом иерархии "Иерархия элементов") на СКД
- Два сканера штрих кода на одном ПК
- Сопутствующие товары в УТ 10.3
- Выбрать запросом только одно значение из ТЧ справочника
- В теле цикла что-то делаем с наименованием
- Как в УТ10.3 увидеть себестоимость товаров в разрезе организаций на 1-ом складе?
- v7: Подсчитать АКБ 1С 77
- Ошибка при создании ОписаниеОповещения в модуле формы
- Новая методика проведения документов
- Текст запроса в динамическом списке?
- УФ. 8.3. Страница и ПутьКДаннымЗаголовка
- 1С 8. Таблица значений, отбор по значению "не равно".
- Слетает граница последовательности при обмене
- СКД раскраска строчек через одну
- Помогите с данными расшифровки
- Вопрос по режиму управления блокировкой данных
- Обмен между базами РИБ
- Новичку: как в 1С8.2 программно перейти на другую закладку в форме?
- УТ 11.1 Типовое соглашение с клиентом для сегмента