También debe instalar cygrunsrv
para poder configurar cron como un servicio de Windows y luego ejecutarlo cron-config
.
Si desea que los trabajos cron envíen un correo electrónico de cualquier salida, también deberá instalar exim
o ssmtp
(antes de ejecutar cron-config
).
Consulte /usr/share/doc/Cygwin/cron-*.README
para obtener más detalles.
Con respecto a los programas sin .exe
extensión, probablemente sean scripts de shell de algún tipo. Si observa la primera línea del archivo, puede ver qué programa necesita usar para ejecutarlos (por ejemplo, " #!/bin/sh
"), por lo que quizás podría ejecutarlos desde el programador de Windows llamando al programa de shell (por ejemplo, " C:\cygwin\bin\sh.exe -l /my/cygwin/path/to/prog
"). )
can't switch user context
a pesar de que se hizo la solicitud explícita de NO usar otras cuentas. El cambio de cuenta con cron en cygwin es aparentemente OBLIGATORIO. Debes decir NO a correr como tú mismo ...cronevents
comando para ver los eventos (desde el registro de eventos de Windows). Nunca se descartan, podaría los troncos cada pocos meses.Tienes dos opciones:
Instale cron como un servicio de Windows, usando cygrunsrv:
Los archivos 'no .exe' son probablemente scripts bash, por lo que puede ejecutarlos a través del programador de Windows invocando bash para ejecutar el script, por ejemplo:
fuente
sugerencia de sombrero http://linux.subogero.com/894/cron-on-cygwin/
Inicie cygwin-setup y agregue el paquete "cron" de la categoría "Admin".
Ejecutaremos cron como un servicio por el usuario SYSTEM. Por lo tanto, un sistema pobre necesita un directorio de inicio y un shell. El archivo “/ etc / passwd” los definirá.
El inicio del servicio:
Los usuarios locales ahora pueden definir sus tareas programadas de esta manera (crontab iniciará su editor favorito):
Usuarios de dominio : no funciona. Un cron deficiente no puede ejecutar tareas programadas en nombre de los usuarios del dominio en la máquina. Pero hay otra forma: cron también ejecuta cosas que se encuentran en la tabla cron a nivel del sistema en “/ etc / crontab”. Así que inserte su sufijo allí, para que SYSTEM lo haga en su propio nombre:
Finalmente, unas palabras sobre las entradas crontab. Son configuraciones de entorno o comandos programados. Como se vio anteriormente, en Cygwin es mejor crear una RUTA utilizable. El directorio de inicio y el shell normalmente se toman de “/ etc / passwd”.
En cuanto a las columnas de comandos programados, consulte la página del manual.
Si ciertas entradas de crontab no se ejecutan, la mejor herramienta de diagnóstico es esta:
fuente
Solo quería agregar que las opciones de cron parecen haber cambiado. Necesita pasar -n en lugar de -D.
fuente
Apliqué las instrucciones de esta respuesta y funcionó Solo para señalar una respuesta similar a copiar y pegar (porque el procedimiento de instalación de cygwin es una especie de anti-copiar-pegar implementado)
Haga clic en el botón WinLogo, escriba cmd.exe, haga clic derecho, elija " Iniciar como administrador ". En el indicador de cmd :
Asegúrese de que el instalador no arroje ningún error en el indicador ... Si lo ha hecho, probablemente tenga algunos binarios cygwin en ejecución o no sea un administrador de Windows, o algún error extraño ...
Ahora en cmd promt:
o cualquier ruta de archivo completa que pueda tener al cygrunsrv.exe e inicie el cron como servicio de Windows en el indicador de cmd
Ahora, en la terminal bash , ejecute crontab -e
configure su entrada cron, un ejemplo a continuación:
fuente
Descubrí cómo hacer que el servicio cron Cygwin se ejecutara automáticamente cuando inicié sesión en Windows 7. Esto es lo que funcionó para mí:
Con el Bloc de notas, cree un archivo
C:\cygwin\bin\Cygwin_launch_crontab_service_input.txt
con contenidono
en la primera línea yyes
en la segunda línea (sin las comillas). Estas son sus dos respuestas a las solicitudescron-config
.Crear archivo
C:\cygwin\Cygwin_launch_crontab_service.bat
con contenido:Agregue un acceso directo a lo siguiente en la carpeta de inicio de Windows:
Cygwin_launch_crontab_service.bat
Consulte http://www.sevenforums.com/tutorials/1401-startup-programs-change.html si necesita ayuda sobre cómo agregar a Startup. Por cierto, puede agregarlos opcionalmente en el Inicio si desea:
Cygwin
Servidor XWin
El primero ejecuta
y el segundo ejecuta
fuente
La sintaxis correcta para instalar cron en cygwin como servicio de Windows es pasar -n como argumento y no -D :
cygrunsrv --instalar cron --ruta / usr / sbin / cron --args -n
-D devuelve un error de uso al iniciar cron en cygwin:
PS
$ cygrunsrv --instalar cron --ruta / usr / sbin / cron --args -D
$ cygrunsrv - iniciar cron
cygrunsrv: Error al iniciar un servicio: QueryServiceStatus: Error 1062 de Win32:
No se ha iniciado el servicio.
$ cat /var/log/cron.log
cron: opción desconocida - D
uso: / usr / sbin / cron [-n] [-x [ext, sch, proc, parc, load, misc, test, bit]]
PS
La siguiente página tiene una buena explicación.
Instalación y configuración del servicio Cygwin Cron en Windows: https://www.davidjnice.com/cygwin_cron_service.html
PD : tuve que ejecutar Cygwin64 Terminal en mi PC con Windows 10 como administrador para instalar cron como servicio de Windows.
fuente
fuente