Имя: Пароль:
IT
Админ
Остановка службы 1С
0 Stavral
 
01.09.14
09:07
Заметил такую странную штуку: частенько при перезапуске службы агента 1С после остановки она не стазу дает себя запустить. Т.е. нажимаешь "Запустить" - служба повисит активной секунды две и опять отрубится. И так до пяти раз. В чем тут дело? Надо ждать какое-то время, прежде чем пытаться ее запустить?
1 DrZombi
 
гуру
01.09.14
09:10
А ты не теребонкай :)
Если ты стартуешь сервак, чего ты так спешишь?
Все ровно все кто был отпали тут же :)
2 zulu_mix
 
01.09.14
09:12
смотри службы от которых зависит сервер 1с. пока они не запустятся - сервер не стартанет
3 tdm
 
01.09.14
09:16
(0) стоит только одна версия сервера 1С ? (или несколько 8.1,8.2,8.3)
из памяти все рабочие процессы успевают выгрузиться или вы просто по наитию стоп/старт жмёте ?
4 tdm
 
01.09.14
09:17
(1) >>А ты не теребонкай :)
+1, =)))
5 tdm
 
01.09.14
09:18
+ (3) забыл написать - виндовый журнал посмотрите, как минимум событие падения службы и описание должно быть
6 John83
 
01.09.14
11:11
(1) на 8.2 не отпадают
7 etc
 
01.09.14
11:14
Иногда возможно менеджер кластера подвисает и не сразу стопорится. Поскольку единственный порт занят новый не запускается. Как правило еще и некторые раб. процессы висят.
Это из моих наблюдений.
8 etc
 
01.09.14
11:16
(1) при нормальном рестарте сесси не отваливаются. Соответственно например если подвис менеджер регл. заданий можно рестартануть службу и никто не заметит. Ну разве что замрет клиент секунд на пять - десять
9 ptiz
 
01.09.14
11:23
(0) Запускай только после того, как увидишь в диспетчере задач, что все старые процессы погасились.
10 Stavral
 
01.09.14
14:39
(3) Версия стоит одна. Дело в том, что я не могу визуально наблюдать выгрузку процессов, т.к. службу перезапускает скрипт в 5 часов утра. Просто у нас сервера обновляются ночью, машины перезагружаются и служба не стартует сама после этого. Т.ч. скрипт проверяет ее статус и запускает/перезапускает. Но, как видно, не всегда срабатывает, т.к. сегодня утром служба была отключена. Судя по логам скрипта - он ее запустил в 5 утра. Но, видимо, после этого она опять отрубилась.

В общем, как я понял, надо выставить таймаут побольше, чтобы дать службе время до конца остановиться.
11 13_Mult
 
01.09.14
15:11
(1) + 1 не теребонькать ))
12 Chuper_IT
 
02.09.14
01:14
(10) может скрипт покажешь?
13 DrZombi
 
гуру
02.09.14
07:20
(6) Как так, куда же они денутся?
14 DrZombi
 
гуру
02.09.14
07:21
(8) Сомневаюсь, я в этом успехе. А что будет с теми, кто запускал в этот момент мего отчет на 30 минут? :)
15 DrZombi
 
гуру
02.09.14
07:21
(10) Дак у тебя еще все проще, сделай паузу по скрипту на минутку
16 DrZombi
 
гуру
02.09.14
07:22
+(15) А то чувство, что ты хочешь как у этого "Без разрывов 2 года, и кайф обламывают" :)
17 Stavral
 
02.09.14
08:54
(12) (15)

@Echo Off
Set logfile="C:\1C\reStart1C.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
18 Stavral
 
02.09.14
08:55
Вчера поставил таймаут на минуту, пока что все хорошо Служба стартанула :)
19 ptiz
 
02.09.14
09:17
У нас несколько минут стоит между остановкой и запуском.
20 etc
 
02.09.14
09:28
держи мой вариант скрипта (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(0)
else
   wscript.echo "Использование:" & vbcrlf & _
                "   " & stScriptName & " /c:<имя компьютера> <имя службы>" & vbcrlf & _
                vbcrlf & _
                "Если <имя компьютера> не указано то используется localhost." & vbcrlf
   wscript.quit
end if

' Попробуем найти сервис и рестартануть его.
' Если сервис уже был остановлен то просто запустим его

set objLocator = CreateObject("WbemScripting.SWbemLocator")
set objConn = objLocator.ConnectServer(stComputer,"root\cimv2")

on error resume next
   set svc = objConn.Get("Win32_Service.Name='" & stService & "'")
   if err.number<>0 then
      wscript.echo "Служба " & stService & " не найдена на " & stComputer
      wscript.quit(1)
   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(2)
   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(3)
end if
21 Stavral
 
02.09.14
10:31
(20) Спасибо, чуть позже посмотрю =)
AdBlock убивает бесплатный контент. 1Сергей