Elige el shell una vez, o por paso
Un flujo declara su shell y todos los pasos lo heredan. Sin declaración, Dagu prefiere PowerShell, luego pwsh y luego cmd.exe, de modo que un flujo escrito en una máquina se comporta de forma predecible en otra.
- El shell admite una cadena o un array; la forma de array evita problemas de comillas con argumentos como -NoProfile
- Un paso captura su salida en una variable con nombre que los pasos posteriores y las precondiciones pueden leer
- Las precondiciones condicionan un paso a ese valor, así que el reinicio solo ocurre si el servicio está realmente detenido
# service-health.yaml
schedule: "*/15 * * * *"
max_active_runs: 1
shell: powershell -NoProfile
steps:
- id: check_service
run: |
(Get-Service -Name 'MyAppSvc').Status
output: SVC_STATUS
- id: restart_if_stopped
run: Restart-Service -Name 'MyAppSvc'
depends: check_service
preconditions:
- condition: "${SVC_STATUS}"
expected: "Stopped"
retry_policy:
limit: 2
interval_sec: 30
mail_on:
failure: true