Saltar al contenido

Hora del código #1

He estado teniendo problema con el reinicio de un servicio (en Linux) luego de que se actualiza, funciona solamente con el ingreso de un comando a mano. Está curioso el asunto. Mientras tanto decidí automatizar el proceso al hacer que:

  1. Mi computadora despierte.
  2. Se conecte al servidor.
  3. Ejecute el comando.
  4. Cierre sesión.
  5. Mi computadora vuelva a dormir.

Despertar y dormir lo logro con el programador de tareas de Windows.

Programador de tareas

Programador de tareas

Ambas tareas están programadas para que se ejecuten a diario; a una hora el “Despertar” y 5 minutos después el “Dormir”. La primera necesita tener marcada en Condiciones la casilla de Activar el equipo para ejecutar esta tarea, ésta tarea ejecuta (en Acciones) el archivo BATCH:

Despertar.bat

echo despierta

Y “Dormir” ejecuta:

Dormir.bat

Rundll32.exe Powrprof.dll,SetSuspendState Sleep

Para que esto funcione tuve que ejecutar, en una consola (cmd) con derechos administrativos:

powercfg -hibernate off

La ejecución del comando lo logro con un script de AutoHotkey:

SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
SetTitleMatchMode 2

run, C:\Users\edgar\Desktop\putty-session.lnk, C:\Users\edgar\Desktop, max, puttyPID
WinWait, ahk_pid %puttyPID%WinActivate 
sleep, 5000
SendInput,CLAVE{ENTER}
sleep, 5000
SendInput,COMANDO 1{ENTER}
sleep, 10000
SendInput,logout{ENTER}
return

El putty-session.lnk es básicamente:

"C:\Program Files (x86)\PuTTY\putty.exe" -load "sesion-guardada"

Y una tercera tarea programada que ejecuta el script de AutoHotkey entre las tareas “Despertar” y “Dormir”. El script AutoHotkey lo compilé para que la tarea programada pueda ejecutar un .EXE sin problemas.