3

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

谁能帮我解决这个问题。

在此先感谢您的帮助

4

3 回答 3

3

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

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

于 2015-09-24T09:58:20.043 回答
-1

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

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

并确保 script.shPATH正确设置它,因为 cron 可能根本没有设置任何内容PATH

于 2012-05-28T11:04:38.807 回答
-1

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

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

为 cron 守护程序服务设置 LogOn 选项的图像 更多详细信息:https ://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-nopasswd1

于 2017-07-26T09:09:34.977 回答