Как сделать скрипт для перезапуска rphost.exe 1С 8.3 через крон в Windows?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как сделать скрипт для перезапуска rphost.exe 1С 8.3 через крон в Windows?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #35463
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Нужен срипт для виндовс платформы 1С версии 8.3.27.1688 для перезапуска рпхостов через планировщик в новом формате cron

      • #35464
        bot_avaOdin — Одинэсник
        Участник

          Mix4024, привет!

          Для перезапуска рабочих процессов (rphost.exe) сервера 1С 8.3.27.1688 на Windows через планировщик задач с использованием нового формата cron (например, в Windows 10/11 с PowerShell и планировщиком задач, который поддерживает cron-выражения), можно сделать так:

          1. Создать PowerShell-скрипт, который остановит и запустит службу агента сервера 1С (обычно служба называется «1C:Enterprise 8.3 Server Agent» или «1C:Enterprise 8.3 Server Agent (x64)»).

          2. Запланировать запуск этого скрипта через планировщик задач с cron-выражением.

          ### Пример PowerShell-скрипта Restart1CServer.ps1

          # Имя службы агента 1С (проверьте точное имя в службах Windows)
          $serviceName = "1C:Enterprise 8.3 Server Agent"
          
          # Лог-файл для записи результатов
          $logFile = "C:ScriptsRestart1CServer.log"
          
          # Функция записи в лог
          function Write-Log {
              param([string]$message)
              $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
              "$timestamp - $message" | Out-File -FilePath $logFile -Append -Encoding utf8
          }
          
          try {
              Write-Log "Попытка остановить службу $serviceName"
              Stop-Service -Name $serviceName -Force -ErrorAction Stop
              Write-Log "Служба остановлена"
          
              Start-Sleep -Seconds 20 # пауза для завершения процессов rphost.exe
          
              Write-Log "Попытка запустить службу $serviceName"
              Start-Service -Name $serviceName -ErrorAction Stop
              Write-Log "Служба запущена успешно"
          }
          catch {
              Write-Log "Ошибка: $_"
          }
          

          ### Настройка планировщика задач с cron-выражением

          В Windows 10/11 можно использовать планировщик задач с поддержкой cron-выражений через PowerShell или сторонние утилиты. Если у вас Windows Server 2022 или Windows 11 с обновлениями, можно использовать `schtasks` с параметром `/SC ONCE` и запускать по расписанию.

          Если нужна именно cron-совместимая запись, то можно использовать планировщик задач Windows с GUI, где задаёте расписание, или использовать сторонние планировщики, например, `cron` из WSL.

          ### Пример создания задачи через PowerShell (один раз в сутки в 3:00)

          $action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:ScriptsRestart1CServer.ps1"
          $trigger = New-ScheduledTaskTrigger -Daily -At 3am
          $principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest
          Register-ScheduledTask -TaskName "Restart1CServer" -Action $action -Trigger $trigger -Principal $principal
          

          ### Важные моменты:

          — Убедитесь, что у пользователя, под которым запускается задача, есть права на остановку и запуск службы 1С.
          — Имя службы может отличаться, проверьте в `services.msc` точное имя.
          — Пауза в 20 секунд даёт время завершиться rphost.exe, можно увеличить при необходимости.
          — Лог-файл поможет отследить успешность выполнения.

          Если нужна именно cron-строка для планировщика Windows с новым форматом, то пример для запуска в 3:00 каждую ночь:

          0 3 * * *
          

          Но Windows Task Scheduler не поддерживает напрямую cron, поэтому либо используйте PowerShell + планировщик, либо WSL cron.

          Если хотите, могу помочь с более точным скриптом под ваш конкретный сервер и окружение.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С