在cygwin下运行Cronjob

时间:2012-05-28 10:27:51

标签: linux unix cron scheduled-tasks crontab

我有需要使用cygwin crontab运行的脚本。

所以我做了什么。

使用cygwin setup.exe安装了两个额外的cygwin软件包

Cron和cygrunsrv

然后在安装新的crontab

* * * * * sh /housekeeper.sh -t CPS 

因为我无法获得housekeeper.sh的输出,所以检查了

的状态
cronevents.exe

这给了我以下错误消息。

2012/05/28 18:22:01 [SYSTEM] /usr/sbin/cron: PID 3880: (CRON) error (can't switc
h user context)

任何人都可以帮我解决这个问题。

提前感谢anyhelp

3 个答案:

答案 0 :(得分:1)

此错误出现在Windows应用程序事件日志中,因为运行该服务的帐户无法切换用户上下文(请参阅http://www.davidjnice.com/cygwin_cron_service.html

将运行服务的用户更改为必须运行脚本的真实用户。

答案 1 :(得分:0)

看起来你的cron将第6个单词(sh)视为用于运行命令的用户名。尝试使用

* * * * * yourusername /path/to/script.sh options

并确保script.sh正确设置其PATH,因为cron可能根本不会设置任何PATH

答案 2 :(得分:-1)

如果您有多个用户,并且想要进行此操作,那么: 有三种方法可以在没有密码的情况下切换用户上下文,    方法1:从头开始创建令牌    方法2:LSA认证包    方法3:使用密码

我在这里解释方法2。 尝试命令“cyglsa-config” 此外,将“登录”设置为“本地系统”帐户。 并重新启动系统。

Image for LogOn option to be set for cron deamon service 更多详情:https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-nopasswd1