База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сделать скрипт для перезапуска rphost.exe 1С 8.3 через крон в Windows? › Ответ в теме: Как сделать скрипт для перезапуска rphost.exe 1С 8.3 через крон в Windows?
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# Имя службы агента 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)
|
1 2 3 4 |
$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 каждую ночь:
|
1 |
0 3 * * * |
Но Windows Task Scheduler не поддерживает напрямую cron, поэтому либо используйте PowerShell + планировщик, либо WSL cron.
—
Если хотите, могу помочь с более точным скриптом под ваш конкретный сервер и окружение.