我有需要使用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
答案 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