windows下启动cygwin的cron
windows 的计划任务管理 taskschedule 实在太不合我口味了,老早以前就搜过 windows 下的 cron 实现,找到一个运行不怎么稳定,莫名其妙的崩溃。老早以前用 cygwin 的时候,以 linux 的思维方式, crontab -e 制定完任务以后,发现怎么也执行不了。
前阵子又进一步了解了 cygwin ,原来还需要启动一个服务才能够搞定 cron 。cygwin 下不仅仅是 cron 需要以 windows 服务的方式启动,消息队列、共享内存以及信号量等进程间通信方式也需要以 windows 服务方式启动 cygserver 以后才可用。除了 cron 包,还需要确认 cygrnsrv 包已经安装:
# 安装 cron 服务
cygrunsrv -I cron -p /usr/sbin/cron -a -D
# 启动服务: 也可以用 windows 的启动方式 net start cron
cygrunsrv -S cron
# 启动 cygserver
cygrunsrv -I cygserver -p /usr/sbin/cygserver -e “CYGWIN=server”
启动 cron 以后,即使关闭 cygwin 命令窗口,crond 还是会继续运行 :) ,而且默认是自动启动的服务,重启机器以后依然运行—不需要开 cygwin 窗口。
如果用于运行cron的用户是有密码的
则需要用
cron-config来进行初始化配置